2012-05-17 11 views
4

Я пытаюсь оптимизировать свою поисковую систему. Прямо сейчас я запускаю strcmp между поисковыми словами, введенными пользователем, и ключевыми словами, хранящимися в базе данных. Я пытаюсь найти способ, чтобы больше совпадений с поисковыми словами пользователей с ключевыми словами, как только они появятся в результатах поиска.Оптимизируйте свою поисковую систему

Например, если пользователь ищет «красную яблочную живопись», и у меня есть две записи для этого элемента со следующими ключевыми словами: 1. «Яркая краска для яблока» 2. «Яблочная краска нового цвета» Я бы хотел, чтобы вторая запись появится первым в результатах поиска, потому что все слова поиска пользователей были найдены в ключевых словах, хранящихся в db.

Любая помощь в том, как я могу это достичь?

ответ

5

Посмотрите на full text search.

Возможно, вы также захотите рассмотреть внешнюю текстовую поисковую систему, такую ​​как Lucene или Sphinx.

+0

Я просто набрал ответ, сказав, что он должен искать полнотекстовый поиск или, возможно, другой существующий инструмент, такой как Lucene ... +1 – Jeroen

1

вам нужно создать индекс слов. Индекс будет содержать слово id, doc id, количество обращений, положение хитов. Тогда поисковик сможет дать результаты, как вы хотите. На рынке имеются инструменты бесплатного индексирования. Но если вы хотите разработать свои собственные, то следуйте оригинальной бумаге. Bt основатели Google. http://infolab.stanford.edu/~backrub/google.html

Смежные вопросы