1

次のクエリがあるとします (PT 言語を使用):

declare @textoPesquisa as nvarchar(200) = 'haiti and florida and à'
if(@textoPesquisa is null or @textoPesquisa='') set @textoPesquisa = '*'

select * from Noticias n    
 left join containstable(NoticiasParaEstatistica, (Titulo), @textoPesquisa, 
                          LANGUAGE N'Portuguese')  s on n.IdNoticia=s.[key]
 where s.[key] is not null

 select * from NoticiasParaEstatistica where contains(titulo, 
       @textoPesquisa,LANGUAGE N'Portuguese')

ストップ ワードと見なされる印象があるàので、前のクエリでは結果が返されません (AND を使用しているため)。ここで、ストップワード リストをオフにすると、すべて正常に動作しますが、それは適切なオプションとは思えません。

ドキュメントを見た後、transform noise words オプションを見つけました。サーバーでアクティブ化し、カタログを再構築しましたが、まだ 0 件の結果が得られます。

ところで、このシナリオを再現できる可能性のある表と挿入は次のとおりです。

CREATE TABLE [dbo].[NoticiasParaEstatistica](
   [IdNoticia] [bigint] NOT NULL,
   [Titulo] [varchar](400) NOT NULL
 CONSTRAINT [PK_NoticiasParaEstatistica] PRIMARY KEY CLUSTERED 
(
   [IdNoticia] 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]
GO


INSERT INTO NoticiasParaEstatistica (Titulo)
values ('haiti florida à')

私は何が欠けていますか?

ありがとう!

4

0 に答える 0