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 ミリ秒かかります)。

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

4

1 に答える 1

0

solr.EdgeNGramFilterFactoryをご覧ください。インデックスは大きくなりますが、速度は向上します。

于 2013-04-16T09:14:01.000 に答える