【问题标题】:sql full text search not searching exact phrasesql全文搜索不搜索确切的短语
【发布时间】:2016-01-26 11:19:05
【问题描述】:

我有一个包含大约 10,000 条记录的数据库。每条记录都有大约 40 页的文本。我需要在我的数据库中实现全文搜索,因为查询需要很多时间。 我创建了索引following these instructions 并尝试使用全文搜索进行搜索。尽管它提高了显示结果的速度。但我无法在我的表中搜索短语。

我正在使用以下查询进行精确词组搜索

select * from ptcsoftcitation
WHERE CONTAINS(Judgment,'"said contention raised by the counsel"');

它给出了所有包含所有单词但不包含精确短语的结果。它的行为就像'“说”和“争论”和“提出”和“建议”'

请帮帮我..

【问题讨论】:

  • 听起来像是停用词的问题(默认情况下从索引中删除的常用词,如“by”和“the”)虽然我无法重现这个确切的问题。您能否提供全文索引中使用的语言、包含said contention raised by the counsel 的完整句子以及您的 SQL Server 版本?
  • 明确地说,我指的是全文索引中使用的语言设置

标签: sql sql-server full-text-search indexer


【解决方案1】:

假设我有 3 条记录:

bc
abc
bcd
  • 准确搜索:

               = 'bc' will return bc
    
  • 仔细搜索:

               LIKE 'bc' will return bc
    
  • 搜索包含:

               LIKE '%bc' will return bc and abc
               LIKE 'bc%' will return bc and bcd
               LIKE '%bc%' will return bc, abc and bcd
    

我认为你的代码应该:

SELECT * FROM ptcsoftcitation
WHERE Judgment LIKE '%said contention raised by the counsel%'

【讨论】:

  • 问题是关于full-text searchLIKE 不同。
  • 可以使用LIKE进行全文检索
  • 你可以,但前提是表很小或者你的用户有几十分钟等待结果。
猜你喜欢
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 2015-10-19
  • 2016-07-14
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多