首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全文搜索不起作用(FREETEXT -包含)

全文搜索不起作用(FREETEXT -包含)
EN

Stack Overflow用户
提问于 2014-07-14 15:09:32
回答 2查看 2.1K关注 0票数 0

Freetext不返回表中的所有单词。而且不包含工作

我有一排包括在mycolumn=“国王的生活”

我尝试了2种方法,第一种是“包含”。

代码语言:javascript
复制
SELECT * FROM MYTABLE WHERE CONTAINS(MYCOLUMN,'Life NEAR of NEAR a NEAR King')

它什么也不回

第二:

代码语言:javascript
复制
SELECT * FROM MYTABLE WHERE FREETEXT(MYCOLUMN,'Life of a King')

它返回237行!那就是;

“生活的馅饼”,“这是一个奇妙的生活”,“狮子王”,“亚瑟王”,“生活故事”,“国王的生活”等。

我想返回一行,其中只包括“生活”+“+”一个“+国王”字在一起。

谢谢你的回复!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-15 00:30:22

我假设全文字段是nvarchar。

以下是我的例子:

代码语言:javascript
复制
CREATE TABLE [dbo].[FullTextTable](
    [ID] [int] NOT NULL PRIMARY KEY,
    [FullTextField] [nvarchar](max) NOT NULL
    );
GO

CREATE FULLTEXT INDEX ON FullTextTable([FullTextField]) 
   KEY INDEX [PK_FullTextTable]
   WITH STOPLIST = SYSTEM;
GO

以下查询返回确切值:

代码语言:javascript
复制
SELECT FullTextField
FROM FullTextTable
WHERE
CONTAINS 
(FullTextField, N'"Life NEAR of NEAR a NEAR King"' );
GO
票数 0
EN

Stack Overflow用户

发布于 2021-02-02 07:21:25

你必须考虑以下几点

  1. 要搜索的列应该有全文索引。

  1. 检查表中是否存在搜索项。 从sys.dm_fts_index_keywords(DB_ID('your_DB_Name'),OBJECT_ID(‘_your_table_Name’)选择*,其中display_term喜欢'%your_searching_keyword%‘

  1. “更改跟踪”属性应设置为“自动”。如果在创建索引之后,要从表中添加或删除行,或者表中的数据不是静态的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24739742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档