【问题标题】:Match a word with similar words using Solr?使用 Solr 匹配具有相似单词的单词?
【发布时间】:2011-02-28 00:42:28
【问题描述】:

我想用 Solr 在我的 mysql 数据库中搜索线程。

但我希望它不仅搜索线程词,还搜索相似词。

例如。如果线程标题是“待售狗”,并且如果用户搜索狗,则标题将出现在结果中。

如果用户搜索“mac os x”,也会出现“snow leopard”这个词。

以及链接应用程序认为相关的单词的能力,例如。房子和公寓。

这种逻辑是怎么做的?

我知道您可以使用 solr 在您创建/添加的字典文件中查找单词,因此 solr 将查找 dog 并查看有哪些相关单词(例如 dog)。

但是你在哪里可以找到这样的字典?

我不知道这种实现方式。

请指点我正确的方向。

谢谢

【问题讨论】:

    标签: php search solr


    【解决方案1】:

    我认为您必须自己构建这样的字典,因为它是非常特定于应用程序的。 “House”和“Apartment”对于您的应用程序可能是相似的术语,但在另一个应用程序中却非常遥远。

    一旦你有了这本词典,你就可以通过SynonymFilterFactory使用它。

    当用户搜索“dogs”时匹配“dog”由词干分析器管理,不需要任何字典。

    【讨论】:

    • 但是其他语言呢?瑞典?复数形式不只是添加一个“s”,而是添加:“ar”、“or”、“er”,有时什么也没有。 solr 怎么会知道这个?词干分析器只适用于英语?
    • @fayer:“Solr 包括通过 solr.SnowballPorterFilterFactory 对瑞典语词干的支持,Lucene 包括一个示例停用词列表。” wiki.apache.org/solr/LanguageAnalysis#Swedish
    【解决方案2】:

    您可以使用 synonym.txt 文件并创建自己的字典。

    您的另一个选择可能是模糊搜索。

    【讨论】:

    • 我不认为你可以通过模糊搜索“House”找到“Apartment”
    • 确实如此。但它最初的问题是:“我想用 Solr 在我的 mysql 数据库中搜索线程。但我希望它不仅搜索线程词,而且搜索相似词。”同义词是一种选择...
    猜你喜欢
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多