【问题标题】:Understanding DSL Query Properties了解 DSL 查询属性
【发布时间】:2021-05-04 03:22:45
【问题描述】:

ElasticSearch DSL 查询语言包含许多不同的搜索操作,我正在尝试了解不同子句的属性命名约定。

特别是MatchFuzzy 做的事情基本相似,搜索对被认为是命中有不同限制的文本。下面有两个相当直接的例子。

我很难理解的是包含搜索文本的属性名称的变化。对于匹配查询,搜索文本进入查询属性,而对于模糊查询,该属性称为值。

此外,术语“查询”具有更广泛的含义,因为与“过滤器”不同的可排名搜索功能似乎不适合匹配查询属性名称的使用。

匹配“查询”和模糊“值”之间是否有区别来解释不同的术语? Match“查询”和我缺少的通用顶级“查询”之间是否存在某种联系?

GET /_search
{
  "query": {
    "match": {
      "message": {
        "query": "this is a test"
      }
    }
  }
}
GET /_search
{
  "query": {
    "fuzzy": {
      "user.id": {
        "value": "ki"
      }
    }
  }
}

【问题讨论】:

    标签: elasticsearch elasticsearch-dsl


    【解决方案1】:

    Match "query" 和 Fuzzy "value" 之间有区别来解释不同的术语吗?

    是的,有区别。 match query 接受在匹配前分析的全文,而 fuzzy value 搜索单个词。

    Elasticsearch 本身区分Full text queries(例如匹配)和Term-level queries(例如模糊)。

    来自文档:

    与全文查询不同,字词级查询不分析搜索字词。相反,术语级别的查询匹配存储在字段中的确切术语。

    因此,由于我们专注于模糊查询中的单个术语,因此我在这里使用另一个术语是有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-25
      • 2011-04-29
      • 1970-01-01
      • 2017-01-23
      • 2019-08-16
      • 2017-09-18
      • 1970-01-01
      • 2011-10-01
      相关资源
      最近更新 更多