【问题标题】:solr search with whitespaces and without whitespaces带空格和不带空格的 solr 搜索
【发布时间】:2020-09-08 09:16:32
【问题描述】:

我想在文档中搜索带有空格和不带空格的产品,例如 "base ball""baseball"

如果有人搜索“棒球”,结果应该获取“棒球”和“棒球”的记录

我做不到,我也不想为此使用“同义词”。

我使用过滤器类"WordDelimiterFilterFactory" 来获得结果,我在同义词文件中使用了诸如 sunglass 之类的关键字,keychain 用于钥匙链。

但是这样的词会更多,所以即使拆分后也很难找到意思相同的词。

所以我正在寻找不需要使用同义词来获得所需结果的解决方案

我尝试通过设置catenateWords='1' 来获得该结果,但它也与结果不匹配。

【问题讨论】:

  • 如果有人搜索“棒球”,结果应该获取“棒球”和“棒球”的记录……如果有棒球和棒球这两个词的索引,那么是的……它将获取...但是如果这个词是棒球...在索引时它将根据什么分为 base 和 ball?

标签: solr


【解决方案1】:

如果不添加同义词,这是不可能的。您应该将 base ball 添加为棒球的同义词。

WordDelimiterFilterFactory 已弃用。

即使你使用WordDelimiterGraphFilterFactory 也是不可能的。

generateWordParts : 它像 BaseBall 一样在驼峰式拼写字母...但对你来说不是这样。

catenateWords :它也不适用于您的情况,因为您的单词没有任何特殊的字符或连字符分开加入。例如 wi-fi 将获得 wifi。

所以要么你的数据应该有单独的词被索引。这意味着如果您不想使用同义词,那么您必须推动棒球和棒球进行索引,那么只有您才能对这些词执行搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多