当前位置: 首页 > 面试题库 >

即使停用词列表为空,如果包含停用词,全文搜索也不起作用

万俟心思
2023-03-14
问题内容

我希望能够搜索每个单词,因此我已清除了停用词列表。比我已经重建了索引。但是不幸的是,如果我输入带有停用词的搜索表达式,它仍然不会返回任何行。如果我只剩下停用词,我一定会得到结果。例如,“双重磨损保持原位”-没有结果,“双重磨损保持原位”-我得到的结果实际上也包含“中”。

有谁知道为什么会这样吗?我正在使用SQL Server 2012 Express。

非常感谢!


问题答案:

同时,我设法解决了这个问题。问题是我有自己的停止列表,该列表确实是空的,但全文目录不是与我自己的停止列表关联的,而是与系统之一关联的。以下是一些用于解决停用词和全文本搜索问题的有用查询:

查询停用词(不返回系统的停用词!):

select * from sys.fulltext_stopwords

查询停止列表(不返回系统列表!):

select * from sys.fulltext_stoplists

检查目录中包含哪些词:

SELECT * FROM sys.dm_fts_index_keywords(DB_ID('dbname'), OBJECT_ID('tablename'))

检查关联:

select fulltext_catalog_id,stoplist_id, * from sys.fulltext_indexes;

关闭停用清单:

ALTER FULLTEXT INDEX ON CremeSearchFT SET STOPLIST = OFF

希望对您有所帮助。:)



 类似资料:
  • 问题内容: 我看到mysql的全文停用词列表是英文的。考虑到全世界都在使用mysql,这有点奇怪… 无论如何,我将ft_min_word_len降低到3,所以我需要将我的语言中的常用单词添加到此列表中。 有人可以告诉我在哪里可以找到它? 谢谢 问题答案: 这应该工作: 要覆盖默认停用词列表,请设置ft_stopword_file系统变量。(请参见第5.1.4节“服务器系统变量”。)变量值应为包含停

  • 问题内容: 通过以下查询,我得到的结果包含单词“ International”和“ Shipping”,我还得到了包含“ International”或“ Shipping”的结果。我该怎么做才能确保结果同时包含两个单词而不只是其中之一? 任何帮助将不胜感激,谢谢! 问题答案: 在每个必需的单词前添加一个,然后使用。 11.8.2。 布尔全文搜索 在实现此功能时,MySQL使用了有时称为隐式布尔逻

  • 我有以下问题:有几个文本文档需要解析和创建索引,但没有停止词和词干。我可以手动操作,但我从一位同事那里听说Lucene可以自动操作。我在网上搜索了很多我尝试过的例子,但是每个例子都使用了不同版本的lucene和不同的方法,没有一个例子是完整的。在这个过程结束时,我需要计算集合中每个术语的tf/idf。 更新:我现在已经用一个文档创建了一个索引。doc没有停止词,并且有词干。如何使用lucenc计算

  • 我一直在用spaCy查找最常用的名词和noun_phrases 在寻找单个名词时,我可以成功地去掉标点符号并停止单词 然而,使用noun_chunks来确定短语会导致属性错误 spacy.tokens.span.Span对象没有属性 我理解的性质的消息但我不能为我的生活得到语法正确的地方存在的停止字在一个emmatiated字符串将排除从被附加到noun_phrases列表 不删除停止字的输出 [

  • 我使用的elasticsearch版本是ES2.2。我为全文搜索键入与官方教程相同的代码。(https://www.elastic.co/guide/en/elasticsearch/guide/current/match-query.html) 看来全文对我不起作用。我的设定有什么问题?谢谢! 我键入的代码如下: 返回的结果是: 当我输入精确的查询时,我只能得到一次命中,该查询存储在索引中。 输

  • 我使用Lucene.net3.0.3,我不明白停止词应该如何在查询中工作。 我将此文本作为输入: 我使用StandardAnalyzer(Version.LUCENE_30)进行索引和查询。索引有一个字段 该字段设置为存储和分析。我也玩过不同的TermVector。对于查询解析,我使用简单的QueryParser。解析和 这就是问题所在: 查询返回文档-这很好 对的查询不会返回文档-我期待它,因为