我开始四处寻找搜索引擎,在阅读了一些资料后我决定使用 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/