Я хочу сделать запрос, чтобы получить людей с синтаксисом NEAR.Когда я ищу любой текст, который содержит букву N во втором слове, результат всегда пуст.
У меня на столе зарегистрированы два человека, Рикардо Мова и Рикардо Нова.Если поиск 'Ricardo NEAR' Mova * "'в порядке, но не для' Ricardo NEAR 'Nova *'
EDIT
- 4 записи (РикардоNova, Ricardo Novais, Ricardo Novo, Ricardo Nunes)
- запрос 'Ricardo NEAR' N * '
- результат показывает только "Ricardo Novais" и "Ricardo Nunes".
Таблица:
CREATE TABLE [dbo].[EntitySearch](
[IdEntity] [int] NOT NULL,
[Name] [nvarchar](max) NULL,
[Accessibility] [bit] NOT NULL,
[Document] [nvarchar](max) NULL,
[Email] [nvarchar](max) NULL,
[Phone] [nvarchar](max) NULL,
[Phone2] [nvarchar](max) NULL,
[Birthdate] [datetime] NULL,
[Gender] [int] NULL,
[IsAct] [bit] NOT NULL,
[Discriminator] [int] NOT NULL,
CONSTRAINT [PK_dbo.EntitySearch] PRIMARY KEY CLUSTERED
(
[IdEntity] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Каталог
CREATE FULLTEXT CATALOG main_catalog;
Полный индекс
CREATE FULLTEXT INDEX ON dbo.EntitySearch
( [Name]
Language[Brazilian],
[Document]
Language[Brazilian],
[Email]
Language[Brazilian],
[Phone]
Language[Brazilian],
[Phone2]
Language[Brazilian] )
KEY INDEX [PK_dbo.EntitySearch] ON main_catalog;
Запрос:
SELECT top 10
FT_TBL.[IdEntity]
,FT_TBL.[Name]
,FT_TBL.[Accessibility]
,FT_TBL.[Document]
,FT_TBL.[Email]
,FT_TBL.[Phone]
,FT_TBL.[Phone2]
,FT_TBL.[Birthdate]
,FT_TBL.[Gender]
,FT_TBL.[IsAct]
,FT_TBL.[Discriminator]
FROM [EntitySearch] AS FT_TBL INNER JOIN
CONTAINSTABLE ([EntitySearch], [Name], 'Ricardo NEAR "Nova*"' ) AS KEY_TBL
ON FT_TBL.[IdEntity] = KEY_TBL.[KEY]
WHERE
FT_TBL.[IsAct] = 1
and FT_TBL.[Discriminator] = 2
and KEY_TBL.RANK > 10
ORDER BY KEY_TBL.RANK DESC, FT_TBL.[Name]
Я ожидаю, что покажет 1 запись, но ни одна не будет показана.Спасибо!
РЕДАКТИРОВАТЬ: ВРЕМЕННОЕ РЕШЕНИЕ
Я удалил и заново создал полнотекстовый индекс на португальском языке.Проблема исчезла, поэтому я думаю, что «ошибка» на бразильском языке для индекса.