SQL Server 2005 FTS неожиданные результаты - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть индексированное представление с двумя столбцами, символом первичного ключа и полем для полнотекстовой индексации varchar (300).Мне нужно выполнить поиск в базе данных MS Great Plains, поэтому я создал представление для заполнения поля сцепленными значениями из моей первичной таблицы IV00101.

CREATE VIEW SearchablePartContent WITH SCHEMABINDING AS 
SELECT ITEMNMBR, rtrim(ITEMNMBR)+' '+rtrim(ITMSHNAM)+' '+rtrim(ITMGEDSC)
 as SearchableContent
FROM dbo.IV00101
GO
-- create the index on the view to be used as full text key index
CREATE UNIQUE CLUSTERED INDEX IDX_ITEMNMBR ON SearchablePartContent(ITEMNMBR)
CREATE FULLTEXT INDEX ON SearchablePartContent(SearchableContent) KEY INDEX IDX_ITEMNMBR ON Cat1_PartContent
WHILE fulltextcatalogproperty('Cat1_PartContent','populatestatus') <> 0
BEGIN
 WAITFOR DELAY '00:00:01'
END

Проблема заключается в том, что при выполнении поиска по определенному ключевому слову(s) это даст неожиданные результаты.Например, простой запрос, такой как:

SELECT * FROM SearchablePartContent WHERE CONTAINS(SearchableContent, 'rotor')

должен дать 5 результатов, вместо этого я получаю 1. Индексируется около 72 000 записей.Однако, если я сделаю сравнение LIKE, я получу ожидаемые строки.Мои данные не сложны, вот пара результатов, которые должны быть возвращены из моего запроса, но это не так:

  1. MN-H151536 Джон Чоппер, сборка ротора Monkey 8820,9600,8820FRT
  2. MN-H152756 Джон Ротор, подшипник 9650STS, 9750STS1
  3. MN-H160613 Джон Ротор, подшипник 9650STS, 9750STS2

Любая помощь будет принята с благодарностью.Спасибо

1 Ответ

0 голосов
/ 10 сентября 2010

Просто мысль: попробуйте заключить поисковый запрос в двойные кавычки, чтобы понять, имеет ли это значение.

SELECT * FROM SearchablePartContent WHERE CONTAINS(SearchableContent, ' "rotor" ')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...