Существует ли быстрый и точный хайлайтер для Lucene?

StackOverflow https://stackoverflow.com/questions/82151

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Однако он плохо работает с более сложными запросами.В простейшем случае фразеологические запросы, такие как "Переполнение стека", будут соответствовать всем вхождениям Stack или Overflow в выделении, что создает у пользователя впечатление, что это работает не очень хорошо.

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

Есть ли какая-нибудь более быстрая реализация точного хайлайтера?

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top