SOLR中的子串匹配

Mic*_*ael 7 search solr substring edismax

我似乎无法弄清楚如何找到与SOLR的子串匹配,我已经找到了基于前缀的匹配,所以我可以得到火腿匹配汉堡包.

如何搜索"汉堡"以匹配汉堡包?我尝试过汉堡但是这个错误'*'或'?' 不允许作为WildcardQuery中的第一个字符.

如何使用SOLR匹配子串?

Pau*_*aul 9

如果有人在搜索"apachesolr substring"之后到此为止,那么有一个更简单的解决方案:https://drupal.stackexchange.com/a/27956/10419 (来自https://drupal.stackexchange.com/questions/26024/how-can-i-make-search-with-a substring-of-a-word)

将ngramfilter添加到solr config目录中schema.xml中的文本类型定义.

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" />
Run Code Online (Sandbox Code Playgroud)


Kar*_*ell 3

您可以启用此功能,但它会非常消耗资源(例如搜索 SuffixQuery)。

请参阅:http ://lucene.472066.n3.nabble.com/Leading-Wildcard-Search-td522362.html

引用邮件列表: 解决方法吗?想象一下使用所有术语反向拼写的第二个索引(或添加另一个字段)。

=>

请参阅添加 ReverseStringFilter https://issues.apache.org/jira/browse/LUCENE-1398

并支持高效的前导通配符搜索:https ://issues.apache.org/jira/browse/SOLR-1321

目前 issues.apache.org 似乎已关闭。尝试使用例如谷歌缓存。