现在在我的映射中,我将“include_in_all”设置为 true,这意味着所有字段都包含在 _all 字段中。
但是,当我搜索时,我不想浪费空间并将所有内容都放在 _all 字段中,而是想将特定字段指定为某些字段(并考虑到映射中的提升分数)。
如何创建一个查询来告诉 Elastic Search 只查看特定字段(而不仅仅是 1)并考虑我在映射期间给予它的提升?
现在在我的映射中,我将“include_in_all”设置为 true,这意味着所有字段都包含在 _all 字段中。
但是,当我搜索时,我不想浪费空间并将所有内容都放在 _all 字段中,而是想将特定字段指定为某些字段(并考虑到映射中的提升分数)。
如何创建一个查询来告诉 Elastic Search 只查看特定字段(而不仅仅是 1)并考虑我在映射期间给予它的提升?
从multi_match查询开始。它允许您查询多个字段,赋予它们不同的权重,这通常是您拥有搜索框时的方式。
{
"multi_match" : {
"query" : "this is a test",
"fields" : [ "subject^2", "message" ]
}
}
query_string 更强大但也更危险,因为它已被解析并且可能会中断。仅在需要时使用它。
您无需将数据保留在_all
字段中即可查询字段。
您可以使用query_string或bool查询来搜索多个字段。