0

在 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 毫秒);

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

4

1 回答 1

0

您可能想看看solr.EdgeNGramFilterFactory。您的索引会增长,但速度会提高。

于 2013-04-16T09:14:01.000 回答