Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / full-text search - Поиск по значению / 11 сообщений из 11, страница 1 из 1
05.03.2019, 11:27
    #39782400
AneP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Доброго времени суток.
Вопрос. Пытаюсь Добавить full-text search.

Имеется таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE [dbo].[UserInfoData_FIO](
	[Id] [uniqueidentifier] NOT NULL,
	[UserInfoId] [uniqueidentifier] NOT NULL,
	[_Modify] [datetime] NOT NULL,
	[SystemUserId] [nvarchar](450) NOT NULL,
	[Rating] [smallint] NULL,
	[Value] [nvarchar](400) NOT NULL,
 CONSTRAINT [PK_UserInfoData_FIO] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO



Добавлен каталог

Код: sql
1.
2.
3.
CREATE FULLTEXT CATALOG [UserInfoData_FIO]WITH ACCENT_SENSITIVITY = ON

GO




В данном каталоге выбрана нужная таблица UserInfoData_FIO в качестве поля выбрано поле Value


В таблице UserInfoData_FIO в поле Value лежит значение равное 1

Далее делаю выборку

Код: sql
1.
SELECT TOP 10 * FROM [dbo].[UserInfoData_Country] as country WHERE  CONTAINS (country.Value, '1')



Но результата нет. Вопрос что надо изменить что бы выполнялся корректный поиск

Заранее Благодарен
...
Рейтинг: 0 / 0
05.03.2019, 14:55
    #39782531
Dzianis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
нет ли ошибки?
таблица UserInfoData_FIO
поиск же по UserInfoData_Country
...
Рейтинг: 0 / 0
05.03.2019, 15:37
    #39782559
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
AnePДоброго времени суток.
Вопрос. Пытаюсь Добавить full-text search.

Имеется таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE [dbo].[UserInfoData_FIO](
	[Id] [uniqueidentifier] NOT NULL,
	[UserInfoId] [uniqueidentifier] NOT NULL,
	[_Modify] [datetime] NOT NULL,
	[SystemUserId] [nvarchar](450) NOT NULL,
	[Rating] [smallint] NULL,
	[Value] [nvarchar](400) NOT NULL,
 CONSTRAINT [PK_UserInfoData_FIO] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO



Добавлен каталог

Код: sql
1.
2.
3.
CREATE FULLTEXT CATALOG [UserInfoData_FIO]WITH ACCENT_SENSITIVITY = ON

GO




В данном каталоге выбрана нужная таблица UserInfoData_FIO в качестве поля выбрано поле Value


В таблице UserInfoData_FIO в поле Value лежит значение равное 1

Далее делаю выборку

Код: sql
1.
SELECT TOP 10 * FROM [dbo].[UserInfoData_Country] as country WHERE  CONTAINS (country.Value, '1')



Но результата нет. Вопрос что надо изменить что бы выполнялся корректный поиск

Заранее Благодарен

Full-text index по нужному полю создан и добавлен в каталог?
...
Рейтинг: 0 / 0
05.03.2019, 15:45
    #39782565
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
что за поиск у вас такой по одному символу , да и то цифра. полнотекстовый поиск не для этого:

CONTAINS может производить поиск:
слова или фразы;

префикса слова или фразы;

слова около другого слова;

слова, флективно сформированного из другого (например, слово «drive» является флективной основой слов «drives», «drove», «driving» и «driven»);

Слово, которое является синонимом другого слова согласно тезаурусу (например, у слова «металл» могут быть синонимы «алюминий» и «сталь»).
...
Рейтинг: 0 / 0
05.03.2019, 17:26
    #39782631
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Konst_Oneчто за поиск у вас такой по одному символу , да и то цифра. полнотекстовый поиск не для этого:

CONTAINS может производить поиск:
слова или фразы;

префикса слова или фразы;

слова около другого слова;

слова, флективно сформированного из другого (например, слово «drive» является флективной основой слов «drives», «drove», «driving» и «driven»);

Слово, которое является синонимом другого слова согласно тезаурусу (например, у слова «металл» могут быть синонимы «алюминий» и «сталь»).


надо проверить установку для шумных слов.

Другой вопрос - а нафига такое?
...
Рейтинг: 0 / 0
07.03.2019, 07:51
    #39783327
AneP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Спасибо всем за ответы. Я примерно понял суть проблемы

1 full-text search. я использую для поиска в приложении в некоторых таблицах. Ввод данных зависит не от меня. Это то что мог выбрать (и выбрал) пользователь
2 и всё таки осталось несколько вопросов

2.1 Получается если пользователь ввел один символ лучше это ограничивать? С этим примерно понятно

2.2 Если пользователь ввел часть слова. Подскажите синтаксис поиска части слова


Код: sql
1.
SELECT TOP 10 * FROM [dbo].[UserInfoData_Country] as country WHERE  CONTAINS (country.Value, '"*осси*"')

не отрабатывает
...
Рейтинг: 0 / 0
07.03.2019, 11:18
    #39783427
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
вы суть полнотекстового поиска не поняли, почитайте ещё раз
...
Рейтинг: 0 / 0
07.03.2019, 11:35
    #39783443
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Код: sql
1.
SELECT TOP 10 * FROM [dbo].[UserInfoData_Country] as country WHERE  CONTAINS (country.Value, '"*осси*"')


На сколько я помню, звёздочка вначала слова не работает, только в конце.
...
Рейтинг: 0 / 0
07.03.2019, 11:37
    #39783446
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Код: sql
1.
SELECT TOP (10) * FROM [dbo].[UserInfoData_Country] as country WHERE  country.Value LIKE '%осси%'



не мучайте fulltext search для таких задач
...
Рейтинг: 0 / 0
08.03.2019, 11:59
    #39783836
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
AnePСпасибо всем за ответы. Я примерно понял суть проблемы

1 full-text search. я использую для поиска в приложении в некоторых таблицах. Ввод данных зависит не от меня. Это то что мог выбрать (и выбрал) пользователь
2 и всё таки осталось несколько вопросов

2.1 Получается если пользователь ввел один символ лучше это ограничивать? С этим примерно понятно

2.2 Если пользователь ввел часть слова. Подскажите синтаксис поиска части слова


Код: sql
1.
SELECT TOP 10 * FROM [dbo].[UserInfoData_Country] as country WHERE  CONTAINS (country.Value, '"*осси*"')

не отрабатывает



https://social.msdn.microsoft.com/Forums/sqlserver/en-US/17653360-2c72-4647-96f0-d3a2a9e67f0e/searching-partial-and-or-full-word-from-fulltext-search-those-might-be-precise-or-fuzzy-less?forum=transactsql


авторFull-text search performs on a linguistic search against the data, operating on words and phrases based on rules of a particular language.

As to using CONTAINSTABLE or CONTAINS, while the character “*” at the end of the contains search condition which is included with double quotation marks (“), for example, CONTAINSTABLE(MyLookupTable, * , '"tball*"'), it will return the word or phrase begin with “tball”. However, the character “*” at the beginning or in the middle of the contains search condition will be ignored because it only represents an asterisk.

As to using FREETEXTTABLE or FREETEXT, the character “*” will be ignored. For example, FREETEXTTABLE(MyLookupTable, *, '"footb*"' ), it will return the word or phrase equal to “footb”. It is the same while you use single quotation mark (') or single quotation mark (') and Double quotation marks (“).

For more information, Please refer to: CONTAINS, CONTAINSTABLE, FREETEXT, FREETEXTTABLE.

I wanted to search all those that contains 'ball' or 'bal' or any partial work like 'oot' should return me all those precise or fuzzy (less precise) OR matching the meaning that has some partial text matching to my seach criterial, from begining, from end or from middle of the word, it should return me correct values but it won't.

You may have to use the LIKE clause to approach the effect for such Relatively exact matching.
...
Рейтинг: 0 / 0
09.03.2019, 22:31
    #39784179
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
full-text search - Поиск по значению
Всех неискушенных сбивает с толку "полнотекстный". Создается впечатление, что можно искать любое вхождение строки в весь документ.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / full-text search - Поиск по значению / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]