Как я могу сгенерировать контекстный текстовый экстракт из текста, возвращенного из полнотекстового индекса SQL Server? - PullRequest
4 голосов
/ 26 февраля 2009

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

Если я ищу "дом" ...

Мой дом очень, очень, очень хороший дом
... спасибо, что посетили наш дом сегодня ... вам не нравится этот дом ... эй, почему вы поджигаете мой дом ? ...

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

Но что происходит с инфлекционалами и основами? Если я найду слово "прогулка", запрос может попасть в слова "прогулка", "прогулка" и т. Д. Мне нужно было бы точно знать какое слово в результатах поиска, на которое оно попало, поэтому я мог бы узнать где основать мою добычу.

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

(И, да, нам известны GSA и Google Mini. Есть несколько тонких причин, по которым они могут не работать в этом случае, поэтому сначала мы пробуем SQL FTI.)

1 Ответ

1 голос
/ 24 марта 2009

Если вы используете SQL 2008, я думаю, вы могли бы использовать sys.dm_fts_parser - отправить в вашей последней строке поиска (с любым добавленным FORMSOF и т. Д.) Это вернет список слов, которые вы можете использовать для выделения текста на вашей странице (с помощью плагина jquery для выделения, все слова, которые он не найдет, просто не будут выделены)

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