2

我最近使用 Elasticsearch 2 并想请求对所有文本字段的查询。

GET myindex/mydata/_search
{
  "query": {
    "simple_query_string": {
      "query": "Raketenfahrrad"
    }
  },
  "highlight": {
    "fields": [ { "*": {} } ]
  }
}

查询返回预期结果,但没有任何突出显示。我体验到当我fields手动缩小搜索范围时会突出显示:

{
  "query": {
    "simple_query_string": {
      "query": "Raketenfahrrad",
      "fields": ["MainTitle","SubTitle","Author","Content"]
    }
  },
  "highlight": {
    "fields": [ { "*": {} } ]
  }
}

但这不符合我“全面搜索”的要求,并且在将下一个新属性添加到mydata类型时会失败。

4

1 回答 1

4

ES 2.0 开始,仅对查询的字段执行突出显示,您必须将require_field_match选项设置为false. 是更改的链接

试试这个

{
  "query": {
    "simple_query_string": {
      "query": "Raketenfahrrad"
    }
  },
  "highlight": {
    "fields": {
      "*": {}
    },
    "require_field_match" : false
  }
}
于 2015-12-08T17:04:25.527 回答