Lucene против "выберите .. как .." - PullRequest
4 голосов
/ 15 февраля 2011

Я пишу веб-приложение, в котором пользователи создают контент (сообщения на форуме). Лучше использовать select .. like .. или Lucene? Каковы преимущества Lucene в не продвинутом поиске.

Ответы [ 3 ]

2 голосов
/ 15 февраля 2011

Lucene намного более мощный / гибкий, но SELECT ... LIKE может быть хорошей отправной точкой. Завершите свое приложение с помощью SELECT ... LIKE, затем вы можете добавить в Lucene , если вам нужно , поскольку это намного больше работы.

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

Краткий ответ: SELECT ... LIKE, вероятно, достаточно хорош для начала.

1 голос
/ 15 февраля 2011

Leucene, вероятно, будет быстрее для больших наборов данных, поскольку он может использовать полнотекстовый индекс.Запрос select ... like в традиционной реляционной базе данных обычно может использовать индекс только в том случае, если аргумент like не начинается с символа подстановки.Например:

select * from mytable where mycolumn like 'fred%'; -- may use an index on mycolumn

select * from mytable where mycolumn like '%fred%'; -- cannot use an index on mycolumn

Если вам нужно выполнить много запросов второго типа, маловероятно, что они будут хорошо масштабироваться.Если вы используете MySQL с механизмом таблиц MyISAM (по умолчанию, но не поддерживает внешние ключи), вы можете использовать Полнотекстовая индексация MySQL , но синтаксис другой и специфичный для MySQL.Он не использует ключевое слово like.

0 голосов
/ 15 февраля 2011

Тебе не стоит задумываться о том, чтобы возиться с Люценом. Вместо этого вам лучше попробовать отдельные продукты, такие как Solr или Elastic Search или библиотеки, такие как Hibernate Search . К сожалению, мой личный фаворит, Компас , теперь заброшен. Я попробовал Hibernate Search некоторое время назад и отказался от него в пользу Compass. Теперь похоже, что Elastic Search - это, вероятно, самый простой способ предоставить расширенные возможности поиска.

Кроме того, некоторые РСУБД поддерживают более или менее расширенные возможности полнотекстового поиска, например, MySQL, MS SQL и Oracle.

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