Использование самостоятельных подходов в поисковой системе Lucene - PullRequest
0 голосов
/ 03 июня 2018

Я ищу подходящую поисковую систему, в которой я могу использовать свою собственную меру сходства и подходы токенизации.Поисковая система Lucene представлена ​​как хорошая для этой цели, но я понятия не имею об этом.Я искал в Интернете учебник по новым версиям поисковой системы Lucene, но большинство страниц написано несколько лет назад.Вот некоторые из моих вопросов:

  1. Можно ли изменить меру сходства, подходы токенизации и стемминга и использовать самосозданные классы в Lucene?Если да, как это сделать?

  2. Есть ли разница между тем, как мы индексируем текст для поиска по ключевым словам или фразового поиска?я должен сделать два разных индекса для поиска по ключевым словам и фразового поиска?(Я думаю, что если мы уберем стоп-слова, это повлияет на результат фразового поиска, а если я не удалю стоп-слова, это повлияет на результат поиска по ключевым словам, не так ли?)

Любая информация по этой теме приветствуется.

1 Ответ

0 голосов
/ 03 июня 2018

Это возможно, да, и мы делаем это на паре решений на моем рабочем месте. Вот разумное руководство, как это сделать .В этом руководстве используется Solr, который является хорошей реализацией Lucene.Чтобы ответить на ваши вопросы напрямую:

  1. Да, есть способ сделать это путем переопределения интерфейсов и обеспечения собственной реализации (см. Учебное пособие).Токенизация может быть выполнена без необходимости переопределять классы в конфигурации Solr по умолчанию, в зависимости от того, насколько вам нужно получить фанки от Tokenization.

  2. Да, создание индекса, который будет возвращать точные результаты, является мерой в понимании того, как ваши пользователи будут искать в индексе.Это, как уже было сказано, большая часть сложности в том, как поиск запросов происходит от людей, которые хотят, чтобы совпадающие результаты попали в верхнюю часть списка результатов, что делается с помощью скоринга.Учитывая, что кажется, что вы хотите изменить оценку, это может не иметь значения для вас.Однако следует отметить, что по умолчанию Lucene будет сопоставлять попадания с несколькими столбцами выше, чем одно совпадение точно по одному столбцу.Это означает, что если вы храните данные по многим столбцам (и вы выполняете поиск по многим столбцам), ваш поиск будет становиться все менее и менее «точным».

Полнотекстовый поиск по одному столбцу имеет тенденцию быть довольно точной фразой против слов, но в итоге вы получите довольно большой индекс.

...