Я не знаю, как работает ConstantScoreQuery относительно производительности в Elasticsearch 1.4 (я не думаю, что многое изменилось между 1,0 и 2,0 относительно этого)ConstantScoreQuery в elasticsearch
Простой запрос должен вычислить счет, так что если вы делаете запрос такой:
{
"constant_score":
"match": {"field":"text"}
}
это, очевидно, быстрее, чем без константы.
Теперь, если вы делаете boolQuery, существует ли разница между обертыванием boolQuery с константой_score или обертыванием каждого предложения must/should/must_not? exemples:
{
"constant_score": {
"bool":{
"must": [
{"match": {"field1": "text1"}},
{"match": {"field2": "text2"}}
]
}
}
}
против
{
"bool":{
"must": [
{"constant_score": {"match": {"field1": "text1"}}},
{"constant_score": {"match": {"field2": "text2"}}}
]
}
}
Еще один, когда вы делаете boolFilter с 2 "should"
случаях, по умолчанию "minimum_should_match"
устанавливается равным 1, и если первый случай испытания в норме она не потрудитесь проверить другой.
С запросами оценка важна, поэтому каждый "should"
проверен и добавлен к результату удара. Есть ли способ с константой_score обертывать запрос bool, чтобы сделать его простым «OR» bool, как этот фильтр? Под этим я имею в виду не проверять каждый "should"
на каждый документ.
Спасибо за ваши идеи :)