Как отключить определение слова в полнотекстовом поиске SQL Server? - PullRequest
0 голосов
/ 13 февраля 2009

Мне нужно выполнить полнотекстовый поиск без слова stemming ... Я пытался обернуть искомый термин в двойные кавычки, но без радости ... Я все равно получаю результаты, такие как "Болонья", когда я ищу 'bolognalo "'

Любая помощь приветствуется ..

Ответы [ 3 ]

3 голосов
/ 15 февраля 2009

Переключение с использования FREETEXT на CONTAINS.

Я предполагаю, что вы в настоящее время используете FREETEXT, потому что основание автоматически применяется к FREETEXT запросам, тогда как CONTAINS по умолчанию не использует основание.


Второй, менее важный вариант - указать нейтральность языка в вашем запросе FREETEXT:

SELECT *
FROM my_table
WHERE FREETEXT(my_column, 'my search', LANGUAGE 0x0)

Если вы используете это, никакие другие языковые правила также не будут применяться (например, разбиение по словам, стоп-слова и т. Д.).

1 голос
/ 18 февраля 2009

После слишком многих дней, проведенных в попытке, наконец, Я могу сделать это: Я воссоздаю каталог, устанавливая язык на 0 (нейтральный)

CREATE FULLTEXT INDEX ON table_name
(DescriptionField LANGUAGE 0)
KEY INDEX idx_DescriptionField
ON catalog_name

и после каждого запроса с содержанием я устанавливаю язык 0

select * from table_name where contains(DescriptionField,'bolognolo',LANGUAGE 0)

Раньше я не мог этого сделать, потому что я не сделал первый шаг

Большое спасибо!

0 голосов
/ 13 февраля 2009

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

(Впрочем, тогда ты бы никогда не остановился вообще ...)

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