Nest弹性搜寻

你好世界

我正在下面的代码,我想做的是按对象本身查询。

例如:我有一个搜索表单,其中填充了如下的对象字段。然后,我想做的就是根据填写表单的用户搜索弹性搜索。

即:下面,我想通过searchItem对象查询索引。我如何轻松做到这一点?

 class Program
 {
    static void Main(string[] args)
    {
        var p = new Program();

        var item1 = new Announcement() {Id=1, Title = "john", ContentText = "lorem", Bar =  false, Num =  99, Foo = "hellow"};

        //p.Index(item1, "add");

       var searchItem = new Announcement() {Title="john",Num=99};

        ElasticClient.Search<Announcement>();

        Console.Read();

    }

    public void Index(Announcement announcement, String operation)
    {
        var uriString = "http://localhost:9200";
        var searchBoxUri = new Uri(uriString);

        var settings = new ConnectionSettings(searchBoxUri);
        settings.SetDefaultIndex("test");

        var client = new ElasticClient(settings);

        if (operation.Equals("delete"))
        {
            client.DeleteById("test", "announcement", announcement.Id);
        }
        else
        {
            client.Index(announcement, "test", "announcement", announcement.Id);
        }
    }

    private static ElasticClient ElasticClient
    {
        get
        {
            try
            {
                var uriString = "http://localhost:9200";
                var searchBoxUri = new Uri(uriString);
                var settings = new ConnectionSettings(searchBoxUri);
                settings.SetDefaultIndex("test");
                return new ElasticClient(settings);
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}
马丁·拉曼(Martijn Laarman)

你不能:)

NEST无法推断如何仅基于部分填充的POCO进行最佳查询。它应该使用OR还是AND进行嵌套术语查询或包含在has_child中的术语查询?你抓住我的漂移。

Nest确实具有一项称为“无条件查询”的功能,可让您像这样写出整个查询:

ElasticClient.Search<Announcement>(s=>s
    .Query(q=>
        q.Term(p=>p.Title, searchItem.Title)
        && q.Term(p=>p.Num, searchItem.Num)
        //Many more queries use () to group all you want
    )
)

当NEST看到传递给Term的参数为null或为空时,它根本不会呈现查询的那部分。

在此处详细了解此功能的工作原理http://nest.azurewebsites.net/concepts/writing-queries.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

弹性搜寻河的开销?

来自分类Dev

什么是弹性搜寻

来自分类Dev

弹性搜寻河的开销?

来自分类Dev

弹性搜寻字词和字词

来自分类Dev

弹性搜寻分析器

来自分类Dev

弹性搜索Nest TopHits聚合

来自分类Dev

使用NEST进行弹性搜索

来自分类Dev

同时使用弹性搜寻和mysql的应用程式

来自分类Dev

弹性搜寻结果中的分数有误

来自分类Dev

使用NEST进行弹性搜索-异步操作

来自分类Dev

使用NEST使用linq查询弹性搜索

来自分类Dev

使用NEST进行弹性搜索-异步操作

来自分类Dev

ElasticSearch NEST弹性客户端生存期

来自分类Dev

弹性搜索Nest索引查询始终返回false

来自分类Dev

NEST无法找到弹性搜索可以找到的文档

来自分类Dev

弹性搜索不使用Nest返回文档

来自分类Dev

在NEST 2.3.1(弹性搜索)中创建索引时出错

来自分类Dev

部分更新弹性搜索NEST 2.x

来自分类Dev

弹性搜索Nest客户端未应用提升

来自分类Dev

C#NEST中的动态弹性搜索查询

来自分类Dev

ElasticSearch NEST弹性客户端生存期

来自分类Dev

在NEST 2.3.1(弹性搜索)中创建索引时出错

来自分类Dev

弹性搜索:从JSON到NEST的查询,没有重复项

来自分类Dev

使用 Nest 库进行弹性搜索自定义排序

来自分类Dev

file.filename 在 NEST 弹性搜索查询中返回 null

来自分类Dev

使用弹性聚合 (NEST) 时的 null_pointer_exception

来自分类Dev

通过过滤的嵌套文档进行 NEST 弹性排序

来自分类Dev

NEST弹性搜索:如何返回某些字段以及汇总结果?

来自分类Dev

来自Nest客户端弹性搜索2.3的查询序列化