我最近使用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
类型时会失败。
答案 0 :(得分:3)
从 ES 2.0 ,突出显示将在查询字段中执行 ,您必须将require_field_match
选项设置为false
。 Here是更改的链接
试试这个
{
"query": {
"simple_query_string": {
"query": "Raketenfahrrad"
}
},
"highlight": {
"fields": {
"*": {}
},
"require_field_match" : false
}
}