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 ミリ秒かかります)。
要件は、数億のドキュメントを数秒で検索できることです。後者の 2 つのパフォーマンスを改善するための提案はありますか? または、さまざまなアプローチ/ツールに関する提案はありますか?