Соответствующие результаты поиска по нескольким базам данных - PullRequest
1 голос
/ 26 марта 2009

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

Единственный способ, которым я могу придумать, - это разбить контент по количеству слов и / или создать сложный набор правил поиска, чтобы дать один приоритет контента другому. Это может быть больше проблем, чем это стоит, но мне было интересно, если кто-нибудь знает какой-либо способ или продукт, который сможет мне помочь.

Ответы [ 2 ]

0 голосов
/ 26 марта 2009

Для дальнейшей поддержки Ivans ответ выше, Lucene - это путь. Вы не упомянули, на какой платформе вы работаете, поэтому я укажу, что вы тоже можете использовать порт .NET.

Если вы используете Lucene, есть очень хорошая книга Мэннинга на эту тему, которую я рекомендую вам посмотреть.

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

Чтобы объяснить, допустим, у вас есть поле для веб-сайта. Затем вы можете разделить свой индекс, ограничив поиск по индексу теми документами, которые имеют этот веб-сайт в этом поле.

Другой процесс заключается в извлечении точек интереса из вашего документа и разрешении поиска по ним без поиска по всей записи индекса. Ваш пробег может варьироваться в зависимости от этого, поскольку движок lucene очень хорошо написан, поэтому он может просто позволить вам собирать результаты поиска в более логичные единицы, что поможет вам в вашем решении.

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

НТН!

0 голосов
/ 26 марта 2009

Если вы используете MS SQL Server, тогда полнотекстовый поиск может вернуть вам рейтинг. Я не использовал его, поэтому вам нужно проверить документацию или онлайн для подробностей.

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