Есть ли быстрый, точный маркер для Lucene? - PullRequest
3 голосов
/ 17 сентября 2008

Я уже некоторое время использую (Java) Highlighter для Lucene (в пакете с песочницей). Однако это не совсем точно, когда речь идет о сопоставлении правильных терминов в результатах поиска - это хорошо работает для простых запросов, например, поиск двух отдельных слов выделит оба фрагмента кода в результатах.

Тем не менее, он не работает хорошо с более сложными запросами. В простейшем случае запросы фразы, такие как «Переполнение стека», будут соответствовать всем вхождениям стека или переполнения при выделении, что создает у пользователя впечатление, что оно работает не очень хорошо.

Я пытался применить исправление здесь , но это сопровождалось множеством предупреждений о производительности, и в конце концов было просто непригодным для использования. Производительность особенно важна для подстановочных запросов. Это связано с тем, как работает подсветка; вместо того, чтобы просто работать над строкой запроса и текстом, он анализирует ее, как это делает Lucene, а затем ищет все совпадения, которые сделал Lucene; к сожалению, это означает, что для определенных запросов с подстановочными знаками он может искать совпадения с предложениями 2000+ для больших документов, и это просто недостаточно быстро.

Есть ли более быстрая реализация точного маркера?

Ответы [ 3 ]

2 голосов
/ 16 марта 2009

Появился новый более быстрый маркер (его необходимо исправить, но он будет частью выпуска 2.9)

https://issues.apache.org/jira/browse/LUCENE-1522

и обратная ссылка на этот вопрос

1 голос
/ 03 октября 2008

Я читал эту тему и наткнулся на spanQuery , который вернул бы вам интервал сопоставленного термина или терминов в соответствующем поле.

1 голос
/ 17 сентября 2008

Вы можете изучить использование Solr. http://lucene.apache.org/solr

Solr - это своеобразное поисковое приложение, которое использует Lucene и поддерживает выделение. Возможно, что подсветка в Solr может использоваться как API вне Solr. Вы также можете посмотреть, как Solr делает это для вдохновения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...