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