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

Откуда:
Сообщений: 12
Добрый день. Есть большая таблица товаров. Около 2 млн записей. Надо искать по артикулу. Прикрутил полнотекстовый поиск к столбцу артикула.

Пытаюсь выполнить следующий запрос. Для наглядности прикладываю картинку к сообщению.

Запросы делаю такие:

Declare @SearchStr varchar(255);

Set @SearchStr = '"*525523*"';
select * from Products
where contains(Articul, @SearchStr)			
	  
	     
select * from Products where Articul like '%525523%'	

Set @SearchStr = '"*r525523*"';
select * from Products
where contains(Articul, @SearchStr)	  


Товар с артикулом R525523 имеется.
Первый запрос не находит ничего
Второй (медленный) находит
Третий тоже находит.
Что я делаю не так?

К сообщению приложен файл. Размер - 72Kb
18 фев 15, 16:56    [17282996]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Похоже на вот ето Scenario1 – German language
18 фев 15, 17:18    [17283141]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
И вот ето

+
Could you please show us your queries? Do you enclose the search condition in double quotation marks ("") and add an asterisk (*) before the ending quotation mark as follows?

SELECT BookID,BookTitile
FROM Books
WHERE CONTAINS(BookTitile,' "Chain*" ')

All records have a match of words or phrases beginning with Chain will be returned. However, the asterisk can only be added at the end.

I think the behavior is working as intended. Full-Text Search is word and phrase-based but LIKE predicate can only return the exact matches of the word or phrase. Please also see: Full-Text Search Overview

We have to use LIKE instead. Alternatively, we can use Full-Text Search to perform a fuzzy search and then use LIKE to return the records that have an exact match of our search conditions. In this way, we can still take advantage of Full-Text Search to return results efficiently.

References:

Full-Text Search (SQL Server)
http://msdn.microsoft.com/en-us/library/ms142571.aspx

SQL Server 2008 Full-Text Search: Internals and Enhancements
http://technet.microsoft.com/en-us/library/cc721269(SQL.100).aspx
18 фев 15, 17:20    [17283164]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Уппит Сергей,

так, встроенный полнотекстовый поиск по произвольной части слова искать не умеет. по началу только.

CONTAINS can search for:
•A word or phrase.
•The prefix of a word or phrase.
•A word near another word.
•A word inflectionally generated from another (for example, the word drive is the inflectional stem of drives, drove, driving, and driven).
•A word that is a synonym of another word using a thesaurus (for example, the word "metal" can have synonyms such as "aluminum" and "steel").




а для "*r525523*" астерикс в начале просто игнорируется.
18 фев 15, 18:03    [17283461]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
вот это посмотрите:
http://social.technet.microsoft.com/wiki/ru-ru/contents/articles/12921.full-text-ru-ru.aspx
18 фев 15, 18:11    [17283497]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Уппит Сергей
Member

Откуда:
Сообщений: 12
Спасибо. Значит придется вводить два типа поиска и уже решать на месте какой использовать.
Может есть команды поиска отличные от CONTAINS или FREETEXT, которые аналогичны LIKE?
19 фев 15, 07:55    [17285231]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Уппит Сергей
Может есть команды поиска отличные от CONTAINS или FREETEXT, которые аналогичны LIKE?


нет. и я больше скажу. скоро попросят искать по датам. причем что такое 12-02-11 - будете догадываться сами :)
19 фев 15, 10:39    [17285830]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Уппит Сергей
Спасибо. Значит придется вводить два типа поиска и уже решать на месте какой использовать.
Может есть команды поиска отличные от CONTAINS или FREETEXT, которые аналогичны LIKE?


есть лисапеды, придуманные девелоперами, которые по идее быстрее like, но там свои вывихи.
Там слова разбиваются на части по буквам и строятся индексы и т.п. где-то было описание здесь на форуме.
Но как по мне, лучше не зниматься извращениями, а определиться с критериями поиска.
20 фев 15, 10:12    [17291270]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Glory
Member

Откуда:
Сообщений: 104751
Уппит Сергей
Может есть команды поиска отличные от CONTAINS или FREETEXT, которые аналогичны LIKE?

Если у вас артикул имеет какую то структуру, то почему у вас нет српавочника по всем артикулам ?
А если у вас артикул есть произволное сочетание символов, то какие еще аналоги кроме LIKE вам нужны ?
20 фев 15, 10:16    [17291296]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Winnipuh
есть лисапеды, придуманные девелоперами, которые по идее быстрее like, но там свои вывихи.
Там слова разбиваются на части по буквам и строятся индексы и т.п. где-то было описание здесь на форуме.
daw дал же ссылку
20 фев 15, 10:27    [17291357]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск. Непонятное поведение при поиске одних толко цифр  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Winnipuh
есть лисапеды, придуманные девелоперами, которые по идее быстрее like, но там свои вывихи.
Там слова разбиваются на части по буквам и строятся индексы и т.п. где-то было описание здесь на форуме.
daw дал же ссылку


ага, но я побоялся туда идти.
20 фев 15, 10:36    [17291419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить