В настоящее время я пишу программу, которая в настоящее время использует elasticsearch в качестве базового индекса базы данных/поиска. Я хотел бы подражать функциональным /_search
конечной точки /_search
, которая в настоящее время использует запрос соответствия:
{
"query": {
"match" : {
"message" : "Neural Disruptor"
}
}
}
Выполнение некоторых выборочных запросов дало следующие результаты в массивной базе данных World of Warcraft:
Search Term Search Result
------------------ -----------------------
Neural Disruptor Neural Needler
Lovly bracelet Ruby Bracelet
Lovely bracelet Lovely Charm Bracelet
Просмотрев документацию elasticsearch, я обнаружил, что запрос соответствия довольно сложный. Какой самый простой способ смоделировать запрос соответствия с помощью только lucene в java? (Кажется, что он выполняет нечеткое совпадение, а также ищет термины)
Импорт кода elasticsearch для MatchQuery (я считаю, org.elasticsearch.index.search.MatchQuery
), похоже, не так просто. Он сильно встроен в Elasticsearch и не похож на то, что можно легко вытащить.
Мне не нужно полное доказательство "Должно соответствовать точно, что соответствует матчу elasticsearch", мне просто нужно что-то близкое, или это может нечеткое совпадение/найти лучший матч.