solr 查询中的子串匹配

man*_*nuj 2 lucene solr

我有一个要求,我必须在查询中匹配一个子字符串。例如,如果该字段具有值:

前缀abc后缀

我必须创建一个匹配的查询abc。我总是知道前缀的长度。

我不能使用EdgeNgramNgram因空间限制的。(因为他们将创造更多的索引。)

所以我需要在查询时间而不是索引时间执行此操作。使用通配符作为前缀*abc*会对性能产生很大影响。

因为我会知道前缀的长度,所以我希望有一些方法可以做一些事情,比如....abc*点代表前缀的确切长度,这样查询就不会像搜索整个索引那样糟糕通配符查询 ( *abc*)。

这在 solr 中可能吗?谢谢你的时间 。

Solr 版本:4.10

fem*_*gon 6

当然,此处记录了通配符语法,您可以搜索类似????abc*. 您还可以使用正则表达式查询。

但是,由此带来的性能优势*abc*将非常小。它仍然必须对整个索引执行顺序搜索。但是,如果您无法改进分析以支持您的搜索需求,则可能无法绕过(GIGO)。