现在在我的映射中,我将“include_in_all”设置为 true,这意味着所有字段都包含在 _all 字段中。
但是,当我搜索时,我不想浪费空间并将所有内容都放入 _all 字段中,而是想指定特定的字段(并考虑映射中的提升分数)。
如何创建一个查询,告诉 Elastic Search 仅查看特定字段(而不仅仅是 1)并考虑我在映射过程中给予它的提升?
最佳答案
以 multi_match 开头询问。它允许您查询多个字段,并赋予它们不同的权重,当您有搜索框时通常会采用这种方法。
{
"multi_match" : {
"query" : "this is a test",
"fields" : [ "subject^2", "message" ]
}
}
query_string 更强大,但也更危险,因为它经过解析并且可能会损坏。仅在需要时使用它。
关于ElasticSearch:如何指定要搜索的特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635976/