Почему Полнотекстовое индексирование SQL не возвращает результаты для слов, содержащих #?

Существует много подходов к этой проблеме. «ObjDict» (pip install objdict) - это другое. Существует акцент на предоставлении javascript-подобных объектов, которые также могут действовать как словари, чтобы лучше обрабатывать данные, загруженные из JSON, но есть и другие функции, которые могут быть полезны. Это дает другое альтернативное решение исходной проблемы.

22
задан Matt 25 November 2014 в 20:40
поделиться

2 ответа

# символ индексируется как пунктуация и поэтому игнорируется, таким образом, похоже, что мы удалим букву C из нашего слова, индексирующего черные списки.

Протестированный это локально после выполнения этого и восстановления индексов и я получаю результаты!

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

РЕДАКТИРОВАНИЕ: Я также нашел эта информация :

c# индексируется как c (если c не находится в Вашем шумовом списке слов, посмотрите больше на шумовых списках слов позже), но C# индексируется как C# (в SQL 2005 и SQL 2000, работая на Win2003 независимо, если C или c находятся в Вашем шумовом списке слов). Это не только C#, который хранится как C#, но и любая прописная буква, сопровождаемая #. С другой стороны C++ (и любой другой печатал строчными литерами буква, сопровождаемая ++) индексируется как c (независимо от того, является ли c в Вашем шумовом списке слов).

14
ответ дан 29 November 2019 в 05:51
поделиться

Заключение в кавычки очень дублируемой страницы справки об Индексации Сервисного языка запросов:

Для использования специально рассматриваемых символов, таких как & |, ^, #, $, (), в запросе, включают Ваш запрос в кавычки (“).

Насколько я знаю, полнотекстовый поиск в MSSQL также сделан Сервисом Индексации, таким образом, это могло бы помочь.

1
ответ дан 29 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: