Beispiel #1
0
        /// <summary>
        /// Delete all objects matching a query.
        /// </summary>
        /// <param name="query">The query.</param>
        async public Task DeleteByQueryAsync(Query query)
        {
            query.SetAttributesToRetrieve(new string[] { "objectID" });
            query.SetAttributesToHighlight(new string[] {});
            query.SetAttributesToSnippet(new string[] {});
            query.SetNbHitsPerPage(1000);
            query.EnableDistinct(false); // force distinct=false to improve performances

            JObject result = await this.BrowseFromAsync(query, null).ConfigureAwait(_client.getContinueOnCapturedContext());

            while (((JArray)result["hits"]).Count != 0)
            {
                int      i        = 0;
                JArray   hits     = (JArray)result["hits"];
                string[] requests = new string[hits.Count];
                foreach (JObject hit in hits)
                {
                    requests[i++] = hit["objectID"].ToObject <string>();
                }
                var task = await this.DeleteObjectsAsync(requests).ConfigureAwait(_client.getContinueOnCapturedContext());

                await this.WaitTaskAsync(task["taskID"].ToObject <String>()).ConfigureAwait(_client.getContinueOnCapturedContext());

                result = await this.SearchAsync(query).ConfigureAwait(_client.getContinueOnCapturedContext());
            }
        }
 public async Task<JToken> GetBooksAsync(string searchString, int pageNumber, int pageSize)
 {
     var query = new Query(searchString);
     query.SetNbHitsPerPage(pageSize);
     query.SetPage(pageNumber);
     query.SetAttributesToRetrieve(new[] { "objectId", "title", "author", "author_first" });
     query.SetAttributesToHighlight(new string[] { });
     var queryResult = await this.PrimaryIndex.SearchAsync(query);
     JToken returnValue;
     return queryResult.TryGetValue("hits", out returnValue) ? returnValue : null;
 }
Beispiel #3
0
        /// <summary>
        /// Delete all objects matching a query
        /// </summary>
        /// <param name="query">the query.</param>
        async public Task DeleteByQuery(Query query)
        {
            query.SetAttributesToRetrieve(new string[] { "objectID" });
            query.SetNbHitsPerPage(1000);

            JObject result = await this.Search(query);

            while (result["nbHits"].ToObject <int>() != 0)
            {
                int      i        = 0;
                JArray   hits     = (JArray)result["hits"];
                string[] requests = new string[hits.Count];
                foreach (JObject hit in hits)
                {
                    requests[i++] = hit["objectID"].ToObject <string>();
                }
                var task = await this.DeleteObjects(requests);

                await this.WaitTask(task["taskID"].ToObject <String>());

                result = await this.Search(query);
            }
        }
 public void TestBigQueryNone()
 {
     clearTest();
     _index.AddObject(JObject.Parse(@"{""firstname"":""Jimmie J""
         , ""Age"":42, ""lastname"":""Barninger"", ""_tags"": ""people""
         , ""_geoloc"":{""lat"":0.853409, ""lng"":0.348800}}"));
     var task = _index.SetSettings(JObject.Parse(@"{""attributesForFaceting"": [""_tags""]}"));
     _index.WaitTask(task["taskID"].ToString());
     Query query = new Query("Jimmie");
     query.SetPage(0);
     query.SetOptionalWords("J");
     query.SetNbHitsPerPage(1);
     string[] attr = { "firstname" };
     query.SetAttributesToHighlight(attr);
     query.SetMinWordSizeToAllowOneTypo(1);
     query.SetMinWordSizeToAllowTwoTypos(2);
     query.EnableDistinct(true);
     query.EnableAdvancedSyntax(true);
     query.GetRankingInfo(true);
     query.EnableTypoTolerance(false);
     query.SetAttributesToRetrieve(attr);
     query.SetAttributesToSnippet(attr);
     query.SetMaxValuesPerFacets(1);
     query.InsideBoundingBox(0, 0, 90, 90);
     query.AroundLatitudeLongitude(0, 0, 2000000000, 100);
     string[] facetFilter = { "_tags:people" };
     string[] facets = { "_tags" };
     query.SetFacetFilters(facetFilter);
     query.SetFacets(facets);
     query.SetTagFilters("people");
     query.SetNumericFilters("Age>=42");
     query.SetQueryType(Query.QueryType.PREFIX_NONE);
     query.SetRemoveWordsIfNoResult(Query.RemoveWordsIfNoResult.LAST_WORDS);
     var res = _index.Search(query);
     Assert.AreEqual(1, res["nbHits"].ToObject<int>());
     Assert.AreEqual("Jimmie J", res["hits"][0]["firstname"].ToString());
     _client.DeleteIndex(safe_name("àlgol?à-csharp"));
 }