【问题标题】:ElasticSearch: How to specify specific fields to search at?ElasticSearch:如何指定要搜索的特定字段?
【发布时间】:2013-05-19 14:52:58
【问题描述】:

现在在我的映射中,我将“include_in_all”设置为 true,这意味着所有字段都包含在 _all 字段中。

但是,当我搜索时,我不想浪费空间并将所有内容都放在 _all 字段中,而是想指定特定字段来确定(并考虑到映射中的提升分数)。

我如何创建一个查询来告诉 Elastic Search 只查看特定字段(而不仅仅是 1)并考虑我在映射期间给予它的提升?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    multi_match 查询开始。它允许您查询多个字段,赋予它们不同的权重,这通常是您拥有搜索框时的方式。

    {
      "multi_match" : {
        "query" : "this is a test",
        "fields" : [ "subject^2", "message" ]
      }
    }
    

    query_string 更强大但也更危险,因为它已被解析并且可能会中断。仅在需要时使用。

    【讨论】:

    • 这会覆盖我在初始映射期间对这些字段的提升吗?
    • 它是额外的,但您将不再需要索引时间提升。
    • 感谢 javanna,另一个问题:知道如何组合过滤器和多匹配查询,就像您的答案中的查询一样吗?
    • 看看你发布的那个新问题 ;)
    【解决方案2】:

    您无需将数据保留在_all 字段中即可查询字段。

    您可以使用query_stringbool 查询来搜索多个字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 2016-09-07
      • 2014-01-07
      • 1970-01-01
      • 2018-08-01
      • 2021-03-13
      • 1970-01-01
      相关资源
      最近更新 更多