c# - 使用 NEST C# 客户端搜索 ElasticSearch

标签 c# elasticsearch nest

我开始四处寻找搜索引擎,在阅读了一些资料后我决定使用 ElasticSearch(这非常棒 :)),我的项目是用 C# 编写的,所以我四处寻找一个客户端并开始使用 NEST ,一切都非常简单,但我在搜索部分有点困惑。

我想在特定类型上搜索所有字段我想到的是以下代码:

elasticClient.Search<NewType>(s => s.Query(q => q.QueryString(d => d.Query(queryString))));

我看到很多字符串查询搜索已被弃用,想确保上面的方法是正确的(上面没有标记为已弃用...)而且对于一个简单的任务来说它有点长所以也许有人知道另一种方法。

谢谢

最佳答案

我只使用字符串查询版本:使用 C# 匿名类型创建我的查询对象并将其序列化为 JSON。

这样一来,我就可以从所有 JSON 查询示例中直接进行映射,而无需转换成这个“查询 DSL”。

Elasticsearch 本身发展非常迅速,因此这种查询 DSL 必然会缺少一些特性。

编辑:示例:

var query = "blabla";
var q = new
        {
            query = new
            {
                text = new
                {
                    _all= query
                }
            }, 
            from = (page-1)*pageSize, 
            size=pageSize
        };
        var qJson = JsonConvert.SerializeObject(q);
        var hits = _elasticClient.Search<SearchItem>(qJson);

关于c# - 使用 NEST C# 客户端搜索 ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581464/

相关文章:

c# - 使用Linq循环遍历所有控件只得到第一个控件

elasticsearch - Liferay dxp中的Indexer和IndexWriter类之间有什么区别?

c# - 需要帮助在 Nest 查询中实现多个 Or 条件

ElasticsearchClientException : Request failed to execute. 调用:状态码 403 来自:POST/index/

elasticsearch - 检查全文字段的日期是否在范围内

c# - 如何在不丢失其在 C# 中的部分的情况下真正将字符串拆分为字符串数组?

c# - WPF Canvas 在绘制很多时卡住

c# - 在 C# 中以编程方式进行 Win7 屏幕截图

elasticsearch - 是否可以通过散列文档的其他字段来计算 _id 字段?

search - 使用什么样的过滤器来匹配像 OCallaghan 和 O'Callaghan 这样的东西?