.net - Elasticsearch Nest field boost + fuzzy

标签 .net elasticsearch nest

我正在尝试设置具有 .NET 连接可用性的 Elasticsearch 环境。我能够使用自定义的模糊距离进行基本查询,但我无法做的是在查询时进行字段提升。 我已经尝试了几个教程/问题,比如 Elasticsearch Nest Boost queryElastic Search using NEST Field Boosting ,但 NEST 无法识别“.OnFieldsWithBoost”或“.OnFields”。

我能够通过 Elasticsearch 的 HTTP API 进行一些字段提升:

POST /products/typeproduct/_search
{
  "query" : {
   "bool": {
      "should": [
        {
          "match": {
            "Title": {
              "query": "sometest",
              "boost": 10.0 
            }
          }
        },
        {
          "match": { 
            "Name": "sometest"
          }
        }
      ]
    }
  }
}

但我还是无法通过 NEST 语法匹配此查询,因为它不允许“应该”中有多个“匹配”。

我的最终目标是能够将某些字段(标题)提升到其他字段(名称)之上,并为匹配添加一些模糊性。 任何帮助将不胜感激。

我的 Elasticsearch 版本:2.2.0 我的 NEST 版本:2.0.2

最佳答案

这是流畅的查询:

var response = client.Search<Document>(search => search
    .Query(q => q.Bool(b => b
        .Should(
            s => s.Match(m => m.Query("sometest").Field(f => f.Title).Boost(1.1)),
            s => s.Match(m => m.Query("sometest").Field(f => f.Name).Fuzziness(Fuzziness.EditDistance(1)))
        ))));

它生成以下对 elasticsearch 的查询:

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "title": {
              "boost": 1.1,
              "query": "sometest"
            }
          }
        },
        {
          "match": {
            "name": {
              "query": "sometest",
              "fuzziness": 1
            }
          }
        }
      ]
    }
  }
}

我希望这就是您要找的:)

关于.net - Elasticsearch Nest field boost + fuzzy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35550985/

相关文章:

java - "match or null"在elasticsearch中查询

c# - 如何使用嵌套客户端在 Elasticsearch 中按数组搜索数组属性

nest - 如何在 Elasticsearch.Net (NEST) 中将 POCO 与字段一起使用?

Elasticsearch curator 删除操作 - 翻转后删除 "n"旧索引?

.net 4.0 任务并行库与 MPI.NET

c# - 命名类型不用于构造函数注入(inject)

c# - ServiceStack CORS - 仅在 IE 中不响应 OPTIONS 请求

c# - C# 2.0 中的接口(interface)多态性

elasticsearch - 如何在Elasticsearch中获取每个文档的重要术语聚合?

elasticsearch - Elasticsearch 中 multi_match 搜索中哪个字段匹配查询?