У меня есть некоторые данные, которые я ищу из эластичного поиска, поскольку он обеспечивает лучший полнотекстовый поиск по сравнению с MongoDB. Но я сталкиваюсь с некоторыми проблемами, и одна из них:
Мои данные сохранены в эластичном поиске, как:
[{
"word": "tidak berpuas hati",
"type": "NEGATIVE",
"score": -0.3908697916666666
},{
"word": "berpuas hati",
"type": "POSITIVE",
"score": 0.65375
},{
"word": "hati",
"type": "POSITIVE",
"score": 0.6
},{
"word": "tidak",
"type": "NEGATIVE",
"score": 0.6
}]
Но когда я ищу предложение saya tidak berpuas hati
в этих данных. Я получаю ответ примерно так:
"hits": [
{
"_index": "sentiment",
"_type": "ms",
"_id": "8SPiimYBKsyQt_Jg1VYa",
"_score": 8.838576,
"_source": {
"word": "berpuas hati",
"type": "POSITIVE",
"score": 0.65375
},
"highlight": {
"word": [
"<em>berpuas</em> <em>hati</em>"
]
}
},
{
"_index": "sentiment",
"_type": "ms",
"_id": "PiPiimYBKsyQt_Jg1U4U",
"_score": 8.774891,
"_source": {
"word": "tidak berpuas hati",
"type": "NEGATIVE",
"score": -0.3908697916666666
},
"highlight": {
"word": [
"<em>tidak</em> <em>berpuas</em> <em>hati</em>"
]
}
},
{
"_index": "sentiment",
"_type": "ms",
"_id": "ByPiimYBKsyQt_Jg1VUZ",
"_score": 5.045017,
"_source": {
"word": "hati",
"type": "POSITIVE",
"score": 0.6
},
"highlight": {
"word": [
"<em>hati</em>"
]
}
}
]
Это мой запрос:
query = {
"from": 0,
"size": 20,
"query": {
"match": {
"word": {
"query": term,
"operator": 'or',
"fuzziness": 'auto'
}
}
},
"highlight": {
"fields": {
"word": {}
}
}
}
Итак, проблема в том, что я не понимаю, почему оценка tidak berpuas hati
не выше berpuas hati
. Когда я изменяю значение from
на 1
, оно начинает работать для этого предложения и останавливается для предложений из одного слова.