Solr Edismax搜索包含子字符串的单词



使用 eDisMax 和 SOLR 5.2.1 搜索字符串,当我将 q 参数设置为该字符串时,SOLR 仅将包含该字符串的字段作为整个单词进行匹配。 例如 q=bc123将匹配"aa-bc123",但不匹配"aabc123"。 如果我在短语之前或之后添加*字符,则为了匹配搜索,必须有尾随字符和前导字符。 例如,q=*bc123*将匹配"abc123a",但不会匹配"bc123"。

问题是 - 什么查询字符串将匹配包含带有或不带有尾随/前导字符的搜索词的单词?

请注意:

  1. 有多个字段要匹配,这些字段使用 qf 参数定义

    qf=field1^4 field2^3 field2^2 ...

  2. 搜索可能包含多个单词,例如。 对于q=abc def,我希望字段同时包含包含"abc"的单词和包含"def"的单词,例如使用 q.op=AND

  3. 我尝试使用模糊搜索,但根据阈值,我得到了不同程度的误报或省略结果。

您可以使用 NGramFilter 来实现此目的。它会将术语拆分为多个令牌,其中每个令牌将是原始令牌的子字符串。

仅在编制索引时才需要筛选器(查询时,令牌应直接匹配(。

相关内容

  • 没有找到相关文章

最新更新