Поиск строки - PullRequest
       16

Поиск строки

0 голосов
/ 10 января 2009

Каков наилучший способ поиска строк для чего-то вроде форума? Я видел ужасный поиск по строкам, и, как правило, чем больше строк вы используете, тем хуже.

Я также могу реализовать поиск по названию, так что если способ поиска по названию лучше, чем текстовая строка, я бы тоже хотел это услышать

Ответы [ 3 ]

5 голосов
/ 10 января 2009

Взгляните на использование Lucene (Java) (или Lucene.Net ) для полнотекстового поиска. Lucene - это API для анализа текста, который позволяет индексировать и искать документы по названию, тексту, автору и т. Д. Я использовал порт Lucene для Ruby (Ferret или acts_as_ferret ) для индексирования специализированного списка рассылки и обнаружил, что это работает очень хорошо.

3 голосов
/ 10 января 2009

В большинстве случаев я бы предложил использовать алгоритм поиска строк «Бойера Мура».

Вы можете прочитать об этом в Википедии:

http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm

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

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

0 голосов
/ 10 января 2009

Не уверен, что именно вы подразумеваете под "Форумом", но Регулярные выражения может послужить хорошим началом.

Слишком генерал?

...