Клиент хочет поиск документов по фразам и определять релевантность по частоте фраз. Стандартные средства match_phrase, как я их понял, не решают задачу полностью.
Решение "в лоб" — делать custom score function, которая будет считать количество фраз в документе. Есть ли способы элегантнее?
Игорь, пробую с shingle фильтром. Получается не очень.
Вот мои эксперименты http://lpaste.net/2853889383168212992. Я пронумеровал документы в соответствии с количеством фраз "software engineer" для удобства.
"Наивный" скрипт дает лучший результат релевантности. Может так и оставить? Я читал что elastic загружает в память все документы. Я предполагаю что скрипт не должен давать большой нагрузки
Что-то вы очень быстро сдались Получается плохо, потому что ваш запрос дискриминирует работников с длинными резюме. По умолчанию, elasticsearch предпочитает короткие документы длинным при одинаковом количестве совпадений слов, но этот механизм очень легко отключить вот так:
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.