我在做full text search
與ElasticSearch。我正在使用Query String Query。我正在用Multi Field功能進行搜索。ElasticSearch:具有多字段的query_string的全文本搜索
我的查詢看起來象下面這樣:
{
"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
。但是,應該根據優先級順序在所有字段上執行搜索。
我怎麼能做到這一點?
不明白你的問題。 @oblivion –
@DivyeshGausvami簡而言之,我想在多個領域進行全文搜索。在這些領域中,其中兩個具有非常高的優先級,需要先匹配。因此,在查詢中,我只想通過給它們更高的提升值來指定這兩個字段。如果這兩個字段不匹配查詢,那麼只有其他字段需要匹配。那麼在這裏,我是否總是需要指定查詢中的所有字段?有沒有辦法在查詢中列出所有低優先級字段? – oblivion
'{ 「查詢」:{ 「multi_match」:{ 「查詢」: 「搜索字符串」, 「田」: 「字段1」, 「字段2」,......, 「字段N」] } } }' 這可能對您有幫助?我對嗎 ? –