有任何提高solr正则表达式搜索性能的建议吗?

时间:2013-04-15 19:24:04

标签: regex solr

在Solr中我有以下字段用于在文本字段上执行精确的词组正则表达式搜索(每个> 1KB):

<fieldType name="text_keyword_lowercase" class="solr.TextField" positionIncrementGap="100">
 <analyzer>
  <tokenizer class="solr.KeywordTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory" />
 </analyzer>
</fieldType>
  • 正则表达式搜索文本的开头是超快的 预期的(/sear.* ph.ase.*/);
  • 其他,中间和结尾(/.*sear.* ph.ase.*//.*sear.* ph.ase/)是一个 慢(在solr中的200,000个文档中搜索需要 在我的工作站上900毫秒);

要求是能够在几秒钟内搜索数亿个文档。 有关提高后两者表现的建议吗? 或者对不同的方法/工具提出建议?

1 个答案:

答案 0 :(得分:0)

您可能需要查看solr.EdgeNGramFilterFactory。你的指数会增长,但速度会提高。