3

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

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

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

4

2 回答 2

9

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

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

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

于 2013-05-19T18:04:48.727 回答
0

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

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

于 2013-05-19T16:23:53.930 回答