ElasticSearch:如何指定要搜索的特定字段?

时间:2013-05-19 14:52:58

标签: elasticsearch

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

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

如何创建一个查询,告诉Elastic Search只查看特定字段(不仅仅是1),并考虑我在映射过程中提供的提升?

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:0)

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

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