Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Full-Text Search запрос

$
0
0
Есть таблица

create table docs
(
id int not null primary key,
name nvarchar(MAX),
decription nvarchar(MAX),
short_descrition nvarchar(MAX)
)


три поля проиндексированы FT Index
name
decription
short_descrition


Юзер ищет

SELECT id FROM dbo.docs
WHERE CONTAINS(*, N'data');
---
1
2
3
4

SELECT * FROM dbo.docs
CONTAINS(*, N'formsof(inflectional,data) AND NOT formsof(inflectional,mining)');
---
1
2
3
4

при этом слово data есть во всех полях всех 4 записей
слово mining есть так же в одном поле записи 1.


Проблема в том, что запись с ид=1 попадает в оба списка, хотя юзер хотел бы ее видеть только в списке 1, но во втором он ожидает
увидеть только
2
3
4

Ясно, что * в CONTAINS(* - причина, но какой тогда должен быть запрос?

Viewing all articles
Browse latest Browse all 7251

Trending Articles