【问题标题】:Full-text search doesn't return the row containing the searched keyword全文搜索不返回包含搜索关键字的行
【发布时间】:2018-10-21 04:54:03
【问题描述】:

我在客户的数据库中进行全文搜索时遇到问题。这个问题只发生在客户端的数据库上,我无法在本地重现,所以我认为它应该与数据库中的现有数据有关。

在存储过程中,我验证不同符号的关键字,然后对其进行操作并将结果分配给@SearchString。如果我的关键字不包含任何空格的引号,我将在所有列上都有全文索引的表上运行以下查询:

SELECT [KEY] FROM CONTAINSTABLE([TableName], *, @SearchString, 1000)

我传递给存储过程的关键字是 I-MU-MUMB-ISC-2909 并且在操作之后,我分配 "I-MU-MUMB-ISC-2909* "@SearchString。即使其中一列中存在确切的字符串,查询也不会返回任何结果。我在创建这个全文索引时使用了 STOPLIST = OFF,所以我的问题不应该是停用词。此外,如果我搜索 I-MU-MUMB-ISC-2908,(字符串以 8 而不是 9 结尾)在同一列中包含此字符串的另一行将显示在结果中。 p>

我什至修改了select并使用了包含关键字的特定列名,但还是没有结果。

如果有帮助,我注意到这两行以及另外几百行在其中一列中有 I-MU-MUMB

我没有直接访问服务器的权限,所以如果您能给我一些建议,我将不胜感激,以便稍后我可以访问服务器时进行测试。

谢谢!

【问题讨论】:

    标签: sql-server full-text-search


    【解决方案1】:

    在测试了我想到的每个场景几天后,我找到了答案。 在检查全文目录的属性时,我注意到最后一个人口日是NULL。我查看了全文搜索的日志,看到如下错误:

    全文填充过程中发生致命错误,导致填充被取消

    然后我查看了数据库的错误日志,发现前几天数据库空间不足,导致全文索引停止。 解决方案已经在日志文件中,我使用以下命令恢复填充,现在一切正常:

    ALTER FULLTEXT INDEX ON table_name RESUME POPULATION
    

    希望它对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多