Я наблюдаю, что результаты, которые я получаю, меняются при подключении к различным узлам в кластере эластичного поиска, хотя я устанавливаю параметр предпочтения для одной и той же пользовательской строки. Например два следующих запроса возвращают разные результаты (10.21.160.54 имеет основной общий ресурс и 10.21.160.56 имеет реплику).
$ curl 'http://10.21.160.54:9200/automation-lucene.qa_en_18_12_query/esmessage/_search?size=25&preference=xyzabc123&timeout=10s' -d '{"query":{"filtered":{"query":{"bool":{"must":[{"match_all":{}},{"match":{"privacyLevel":{"query":"public","operator":"and"}}},{"match":{"is_root":{"query":"true","operator":"and"}}},{"match":{"entity-type.key":{"query":"message","operator":"and"}}}]}},"filter":{"bool":{"must_not":{"terms":{"board_id":["@review","@media@public","@media@private"]}}}}}},"sort":[{"popularity":"desc"}]}'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"failed":0},"hits":{"total":324,"max_score":null,"hits":[{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"903","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"904","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"906","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"918","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"919","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"917","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"916","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"915","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"896","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"897","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"898","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"901","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"902","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"899","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"910","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"913","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"914","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"935","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"929","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"931","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"932","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"930","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"895","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"894","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"908","_score":null,"sort":[0.0]}]}}
$ curl 'http://10.21.160.56:9200/automation-lucene.qa_en_18_12_query/esmessage/_search?size=25&preference=xyzabc123&timeout=10s' -d '{"query":{"filtered":{"query":{"bool":{"must":[{"match_all":{}},{"match":{"privacyLevel":{"query":"public","operator":"and"}}},{"match":{"is_root":{"query":"true","operator":"and"}}},{"match":{"entity-type.key":{"query":"message","operator":"and"}}}]}},"filter":{"bool":{"must_not":{"terms":{"board_id":["@review","@media@public","@media@private"]}}}}}},"sort":[{"popularity":"desc"}]}'
{"took":2,"timed_out":false,"_shards":{"total":1,"successful":1,"failed":0},"hits":{"total":324,"max_score":null,"hits":[{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"935","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"937","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"938","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"936","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"895","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"894","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"941","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"942","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"918","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"925","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"919","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"920","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"917","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"916","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"929","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"931","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"932","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"930","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"926","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"896","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"908","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"903","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"907","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"905","_score":null,"sort":[0.0]},{"_index":"automation-lucene.qa_en_18_12","_type":"esmessage","_id":"902","_score":null,"sort":[0.0]}]}}
Однако, если я установлю предпочтение _primary, то результаты будут согласованы.
Я использую Elasticsearch 1.7. Кто-нибудь имеет представление о том, почему предпочтение не применяется при использовании какой-либо пользовательской строки? Параметр предпочтения работает только при подключении к одному узлу?