【问题标题】:Spell Checker for Search in ASP.NET用于在 ASP.NET 中搜索的拼写检查器
【发布时间】:2010-12-07 20:56:24
【问题描述】:

我正在构建一个搜索,我需要在其中实现几个功能。

1- 它应该带来所有同义词,例如如果有人搜索沙发,它应该带来该沙发的匹配结果以及语言匹配,例如(沙发、靠垫等)。为此,我正在使用全文搜索。

在我的查询中,我使用了 FreeText,但它没有产生所需的结果。我就是这么做的,

select * from Furn_Products Where FreeText(FurnName, 'Couch');

它应该将包含 Cushions、Sofa 和 Couch 的 Names 带走,但它只带 Names with Couch,我也可以通过简单的 Like 查询来做到这一点。有什么解决办法吗?

2- 我需要检查拼写错误,比如如果有人输入 soofa,它应该会带来沙发、沙发等的结果。

关于如何实现这一点的任何提示和想法?提前致谢。

【问题讨论】:

    标签: asp.net full-text-search freetext


    【解决方案1】:

    我同意 Nelson 的观点,市面上已经有很多开源搜索引擎,它们都经过了很多调试。最大的是 Lucene/Solr、Sphinx 和 Xapian。

    另外,添加同义词扩展时要小心。例如,如果将 paddle 扩展为 bat,您可能会得到很多您不想要的动物学结果。如果您正在执行自动查询。找到一些示例并设置一个带有极端案例的测试套件。如果您希望拥有人类用户,请找一对将引导您完成他们的流程以帮助构建您的测试套件的夫妇,并计划对搜索日志非常友好。祝你好运!

    【讨论】:

      【解决方案2】:

      据我所知,全文搜索无法让您访问所有可能的词(词干等)。但从 SQL Server 2008 开始,您可以获得所有索引词的列表。

      要获得更多功能,您可能必须使用 Lucene 之类的第 3 方索引器。

      【讨论】:

        【解决方案3】:

        您可以通过configuring the thesaurus 显式定义匹配项。

        【讨论】:

          猜你喜欢
          • 2013-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-01
          • 1970-01-01
          • 2017-01-20
          • 1970-01-01
          相关资源
          最近更新 更多