代码之家  ›  专栏  ›  技术社区  ›  Jayan

带拼写更改/错误的全文搜索

  •  0
  • Jayan  · 技术社区  · 15 年前

    我们有很多对象,每个对象都有大约100-200个单词的描述。(例如一本书的作者姓名和小摘要)。

    用户以单词序列的形式输入。如何使用近似文本和较小的拼写更改实现搜索?例如“Joshua Bloch”、“Joshua blosh”、“Joshua block”可能导致相同的文本结果。

    6 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    Did you mean “扩展可能是你想要的。

        2
  •  1
  •   Manoj Govindan    15 年前

    你的数据库支持Soundex吗?Soundex将匹配类似的发音词,这似乎符合你上面给出的例子。即使您的数据库没有本机soundex,您仍然可以编写一个实现,并将每个作者名的soundex保存在一个单独的字段中。这可以用于以后的匹配。

    然而,Soundex并不能代替全文搜索,它只在特定情况下有用,比如作者姓名。如果你想从书的简介中找到一些特定的文本,那么最好使用全文搜索选项(比如 Postgresql's ).

        3
  •  1
  •   rkg    15 年前

    如果您正在寻找此功能的实际实现,下面是Peter Norvig编写的一个出色的程序: http://norvig.com/spell-correct.html

    它还链接到许多其他语言的实现,包括Java、C等。

        4
  •  1
  •   Horcrux7    15 年前

    JOrtho . 从数据库中的上下文可以生成自定义词典并进行设置。然后,所有不在词典和数据库中的单词都被标记为拼写错误。

        5
  •  1
  •   Ashish Patil    15 年前

    而不是 Lucene ,请检查 Solr . Lucene是一个库,您可以使用它在应用程序中嵌入搜索功能。Solr是Lucene的实际实现,您可以通过api将其直接插入到应用程序中。对于大多数系统,Solr将节省处理Lucene复杂性的时间。

        6
  •  0
  •   Jaydeep Patel    15 年前