Пример #1
0
 /// <summary>
 /// Find documents into an index
 /// <summary>
 public async Task <MeilisearchDotnet.Types.SearchResponse <T> > Find <T>(
     string query,
     MeilisearchDotnet.Types.SearchRequest options = null
     )
 {
     return(await Search <T>(query, options));
 }
Пример #2
0
        ///
        /// SEARCH
        ///

        /// <summary>
        /// Search for documents into an index
        /// <summary>
        public async Task <MeilisearchDotnet.Types.SearchResponse <T> > Search <T>(
            string query,
            MeilisearchDotnet.Types.SearchRequest options = null
            )
        {
            string url = null;

            query = WebUtility.UrlEncode(query);

            if (options != null)
            {
                url = "/indexes/" + Uid + "/search?q=" + query + "&" + options.ToQueryString();
            }
            else
            {
                url = "/indexes/" + Uid + "/search?q=" + query;
            }
            return(await Get <MeilisearchDotnet.Types.SearchResponse <T> >(url));
        }
Пример #3
0
        public async Task SearchWithParam()
        {
            List <DocTest> _docs_limit_1 = new List <DocTest> {
                new DocTest {
                    Id = "8", Date = new DateTime(2020, 1, 1), Ndouble = 3.4, Nint = 4, SubDocTest = new SubDocTest[] {
                        new SubDocTest {
                            str = "abcd"
                        }, new SubDocTest {
                            str = "efgh"
                        }
                    }
                }
            };
            List <DocTest> _docs_limit_1_bis = new List <DocTest> {
                new DocTest {
                    Id = "7", Date = DateTime.MinValue, Ndouble = 4.8, Nint = 0, SubDocTest = new SubDocTest[] {
                        new SubDocTest {
                            str = "abcd"
                        }, new SubDocTest {
                            str = "e=e&e %"
                        }
                    }
                },
            };
            List <DocTest> _docs_limit_1_offset_1 = new List <DocTest> {
                new DocTest {
                    Id = "9a", Date = new DateTime(2021, 1, 1), Ndouble = 2020.1, Nint = 4, SubDocTest = null
                }
            };

            List <DocTest> _docs_AttributesToRetrieve_id = new List <DocTest> {
                new DocTest {
                    Id = "8", Date = DateTime.MinValue, Ndouble = 0.0, Nint = 0, SubDocTest = null
                }
            };

            MeilisearchDotnet.Types.SearchRequest options = new MeilisearchDotnet.Types.SearchRequest
            {
                Offset = 0,
                Limit  = 1
            };
            MeilisearchDotnet.Types.SearchResponse <DocTest> result = await index.Search <DocTest>("2020", options);

            Assert.Equal(JsonSerializer.Serialize(_docs_limit_1), JsonSerializer.Serialize(result.Hits));
            Assert.Equal(0, result.Offset);
            Assert.Equal(1, result.Limit);

            result = await index.Search <DocTest>("e=e&e %", options);

            Assert.Equal(JsonSerializer.Serialize(_docs_limit_1_bis), JsonSerializer.Serialize(result.Hits));

            options.Offset = 1;
            result         = await index.Search <DocTest>("2020", options);

            Assert.Equal(JsonSerializer.Serialize(_docs_limit_1_offset_1), JsonSerializer.Serialize(result.Hits));
            Assert.Equal(1, result.Offset);
            Assert.Equal(1, result.Limit);

            result = await index.Search <DocTest>("e=e&e %", options);

            Assert.Equal(JsonSerializer.Serialize(new List <DocTest> {
            }), JsonSerializer.Serialize(result.Hits));

            options.Offset = 0;
            options.AttributesToRetrieve = new string[] { "Id" };
            result = await index.Search <DocTest>("2020", options);

            Assert.Equal(JsonSerializer.Serialize(_docs_AttributesToRetrieve_id), JsonSerializer.Serialize(result.Hits));
            Assert.Equal(0, result.Offset);
            Assert.Equal(1, result.Limit);
        }