Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 contains и точное совпадение длинных слов, возможно ли?  [new]
BERSERC
Member

Откуда:
Сообщений: 442
Делаю запрос по полнотекстовому индексу

select TEXT from T_TASKS where contains(TEXT , '"3125620000"' ) 	


в результаты поиска попадают:
3125620086
3125620296
3125620869
3125622475
3125622633
3125622680
3125622195
3125623674

Можно-ли заставить искать только точное совпадение?
19 янв 16, 17:52    [18702704]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
BERSERC
Member

Откуда:
Сообщений: 442
насколько я понял по
SELECT * FROM sys.dm_fts_parser (' "3125620000" ', 1049, 0, 0);


то полнотекстовый поиск понимает что это число, и ищет с округлением число nn3d12562e+009
но как от этого избавиться....
19 янв 16, 18:47    [18702894]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
CREATE TABLE t (
	[txt] VARCHAR(50) COLLATE Cyrillic_General_CI_AS NOT NULL PRIMARY KEY
)
GO

CREATE FULLTEXT INDEX ON t (txt LANGUAGE 'English')
    KEY INDEX ... ON ([AW2008FullTextCatalog], FILEGROUP [PRIMARY])
    WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)

INSERT INTO t
VALUES 
    ('3125620086'),
    ('3125620296'),
    ('3125620869'),
    ('3125622475'),
    ('3125622633'),
    ('3125622680'),
    ('3125622195'),
    ('3125623674')

SELECT *
FROM t
WHERE CONTAINS(txt, '"3125620000"')


Все нормально работает... Можно настройки Вашего FTS увидеть?
19 янв 16, 18:58    [18702916]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
BERSERC
Member

Откуда:
Сообщений: 442
AlanDenton,

Ваш запрос у меня отработал верно.

а как настройки FTS посмотреть?

у меня language для полнотекстового индекса Neurtal стоит, а сервер русифицированный, попробую на ENGLISH перевести...
19 янв 16, 19:07    [18702942]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
BERSERC
Member

Откуда:
Сообщений: 442
AlanDenton,

Спасибо!
если (txt LANGUAGE 'Russian')
то такой косяк, выбирает все строки
а если (txt LANGUAGE 'English')
то все верно!

спасибо)
19 янв 16, 19:10    [18702951]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
Kast2K
Member

Откуда: Санкт-Петербург
Сообщений: 513
Коллеги,
подниму тему.

В поле Comment хранится фраза 'Комментарий? "ZR043001100" вот ответ'
язык поля в индексе установлен в Neutral.

делаю полнотекстовый поиск
select id from Comments where contains(comment,'"*ентарий? *"')

на выходе есть результат.

снова делаю полнотекстовый поиск
select id from Comments where contains(comment,'"*30011*"')

на выходе пусто.

команда
SELECT * FROM sys.dm_fts_parser (' "*30011*" ', 1049, 0, 0);

возвращает

поясните, пожалуйста, как получить интересующий результат?

Спасибо.

К сообщению приложен файл. Размер - 9Kb
10 июн 16, 11:54    [19279769]     Ответить | Цитировать Сообщить модератору
 Re: contains и точное совпадение длинных слов, возможно ли?  [new]
Kast2K
Member

Откуда: Санкт-Петербург
Сообщений: 513
Kast2K,

вопрос снят.
Вернулся к Like
10 июн 16, 13:40    [19280408]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить