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

Откуда: Саратов
Сообщений: 1203
Всем привет! подскажите в чем может быть ошибка/недоработка?

есть полнотекстовый каталог

CREATE FULLTEXT CATALOG [FT_Drug]WITH ACCENT_SENSITIVITY = ON
AS DEFAULT

alter fulltext index on vRegistry set stoplist = off


делаю поиск, хочу найти строку "Бандаж шорты послеродовый (арт. Д-55) р.5 (объем бедер 108-111см) (бежевый)"

select * 
from vRegistry r 
where contains(r.TovName,'"*бандаж*" and "*род*"') 


запрос ничего не возвращает

делаю другой запрос

select * 
from vRegistry r 
where contains(r.TovName,'"*бандаж*" and "*послеродовый*"') 


запрос выдает нужную мне строку. делаю вывод что искомое слово "род" - является стоп словом, но я ведь отключил стоп слова...

вопрос: как настроить мой полнотекстовый каталог так чтоб слово "род"не являлось "стоп ловом". Мне нужно чтобы каталог работал со всеми словами.
30 июн 15, 12:10    [17832107]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Mandarin, полнотекстовый поиск не ищет по части слова.
30 июн 15, 12:17    [17832134]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
select * from sys.dm_fts_parser(N'"Бандаж шорты послеродовый (арт. Д-55) р.5 (объем бедер 108-111см) (бежевый)"', 1049, null, 0);


так работает wordbreaker


keyword group_id phrase_id occurrence special_term display_term expansion_type source_term
-------------------------------- ----------- ----------- ----------- ---------------- ------------------------------ -------------- ------------------------------
0x04310430043D043404300436 1 0 1 Exact Match бандаж 0 Бандаж шорты послеродовый (арт
0x0448043E04400442044B 1 0 2 Exact Match шорты 0 Бандаж шорты послеродовый (арт
0x043F043E0441043B04350440043E04 1 0 3 Exact Match послеродовый 0 Бандаж шорты послеродовый (арт
0x043004400442 1 0 4 Exact Match арт 0 Бандаж шорты послеродовый (арт
0xFF 1 0 12 End Of Sentence END OF FILE 0 Бандаж шорты послеродовый (арт
0x0434002D00350035 1 0 13 Exact Match д-55 0 Бандаж шорты послеродовый (арт
0x0434 1 0 13 Exact Match д 0 Бандаж шорты послеродовый (арт
0x00350035 1 0 14 Exact Match 55 0 Бандаж шорты послеродовый (арт
0x006E006E00350035 1 0 14 Exact Match nn55 0 Бандаж шорты послеродовый (арт
0x006E006E0035007200750062 1 0 15 Exact Match nn5rub 0 Бандаж шорты послеродовый (арт
0x0440002E0035 1 0 15 Exact Match р.5 0 Бандаж шорты послеродовый (арт
0x006E006E0035007200750072 1 0 15 Exact Match nn5rur 0 Бандаж шорты послеродовый (арт
0x043E0431044A0435043C 1 0 16 Exact Match объем 0 Бандаж шорты послеродовый (арт
0x04310435043404350440 1 0 17 Exact Match бедер 0 Бандаж шорты послеродовый (арт
0x003100300038002D00310031003104 1 0 18 Exact Match 108-111см 0 Бандаж шорты послеродовый (арт
0x003100300038 1 0 18 Exact Match 108 0 Бандаж шорты послеродовый (арт
0x006E006E003100300038 1 0 18 Exact Match nn108 0 Бандаж шорты послеродовый (арт
0x0031003100310441043C 1 0 19 Exact Match 111см 0 Бандаж шорты послеродовый (арт
0x04310435043604350432044B0439 1 0 20 Exact Match бежевый 0 Бандаж шорты послеродовый (арт

(19 row(s) affected)

попробуйте всякие expansion rules
30 июн 15, 12:17    [17832136]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1203
Minamoto
Mandarin, полнотекстовый поиск не ищет по части слова.


еще как ищет
30 июн 15, 12:23    [17832170]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mandarin
Minamoto
Mandarin, полнотекстовый поиск не ищет по части слова.


еще как ищет


<prefix term> ::=
{ "word *" | "phrase *" }
<prefix_term>
Specifies a match of words or phrases beginning with the specified text. Enclose a prefix term in double quotation marks ("") and add an asterisk (*) before the ending quotation mark, so that all text starting with the simple term specified before the asterisk is matched. The clause should be specified this way: CONTAINS (column, '"text*"'). The asterisk matches zero, one, or more characters (of the root word or words in the word or phrase). If the text and asterisk are not delimited by double quotation marks, so the predicate reads CONTAINS (column, 'text*'), full-text search considers the asterisk as a character and searches for exact matches to text*. The full-text engine will not find words with the asterisk (*) character because word breakers typically ignore such characters.
30 июн 15, 12:27    [17832190]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Mandarin, по части слова да, но только начиная слева, а не произвольно.
30 июн 15, 12:28    [17832200]     Ответить | Цитировать Сообщить модератору
 Re: FullText Search + стоп слова  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
select * from sys.dm_fts_parser(N'FORMSOF(INFLECTIONAL, бандаж) and FORMSOF(INFLECTIONAL, послеродовый)', 1049, null, 0);




keyword group_id phrase_id occurrence special_term display_term expansion_type source_term
-------------------------------- ----------- ----------- ----------- ---------------- ------------------------------ -------------- ------------------------------
0x04310430043D0434043004360430 1 0 1 Exact Match бандажа 2 бандаж
0x04310430043D043404300436043004 1 0 1 Exact Match бандажам 2 бандаж
0x04310430043D043404300436043004 1 0 1 Exact Match бандажами 2 бандаж
0x04310430043D043404300436043004 1 0 1 Exact Match бандажах 2 бандаж
0x04310430043D0434043004360435 1 0 1 Exact Match бандаже 2 бандаж
0x04310430043D043404300436043504 1 0 1 Exact Match бандажей 2 бандаж
0x04310430043D0434043004360438 1 0 1 Exact Match бандажи 2 бандаж
0x04310430043D043404300436043E04 1 0 1 Exact Match бандажом 2 бандаж
0x04310430043D0434043004360443 1 0 1 Exact Match бандажу 2 бандаж
0x04310430043D043404300436 1 0 1 Exact Match бандаж 0 бандаж
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовая 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродового 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовое 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовой 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовом 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовому 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовою 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовую 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовые 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовым 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовыми 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовых 2 послеродовый
0x043F043E0441043B04350440043E04 2 0 1 Exact Match послеродовый 0 послеродовый

(23 row(s) affected)



похоже, вам и правда, туда
30 июн 15, 12:32    [17832224]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить