我正在使用 ElasticSearch 进行full text search
。我正在使用Query String Query。我正在使用Multi Field功能进行搜索。
我的查询如下所示:
{
"query": {
"query_string": {
"fields": [
"field1^5",
"field2^5",
"field3^1",
"field4^1",
...................
...................
],
"query": "....",
"default_operator": "OR",
"analyzer": "standard"
}
}
}
我的收藏中超过30 fields
。根据我的要求,我需要确保首先需要搜索fieldA
,fieldB
。因此,这些字段将具有higher priority
。其他字段都有low and equal priority
。
那么,是否有某种方式我没有specify all the field names in the query
。我只想指定那些具有更高优先级的字段,即fieldA
,fieldB
。但是,应根据优先级顺序对所有字段执行搜索。
我怎么能实现这个目标?
答案 0 :(得分:2)
试试这个。在我的系统中测试过,它为我工作: -
{
"query": {
"query_string": {
"fields": [
"field1^5",
"field2^5",
"_all",
],
"query": "....",
"default_operator": "OR",
"analyzer": "standard"
}
}
}