solr内のサブストリングマッチ
質問
Solrとのサブストリングマッチを見つける方法を理解できないようです。接頭辞に基づいて試合を見つけたので、ハンバーガーにハンバーをマッチさせることができます。
ハンバーガーにも一致する「ハンバーガー」の検索を受けるにはどうすればよいですか?私は試した バーガー しかし、これはエラー「*」または「?」を投げましたWildCardqueryの最初のキャラクターとして許可されていません。
solrを使用してサブストリングを一致させるにはどうすればよいですか?
解決
これを有効にすることはできますが、非常にリソースが空腹になります(例:SuffixQueryの検索)。
見る: http://lucene.472066.n3.nabble.com/leading-wildcard-search-td522362.html
メーリングリストの引用:回避策?すべての用語が逆方向に綴られた2番目のインデックス(または別のフィールドを追加)することを想像してください。
=>
ReversestringFilterの追加を参照してください https://issues.apache.org/jira/browse/lucene-1398
効率的な主要なワイルドカード検索のサポート: https://issues.apache.org/jira/browse/solr-1321
現時点では、apache.orgがダウンしているようです。たとえば、Googleキャッシュを使用してみてください。
他のヒント
「Apachesolr Substring」を検索した後に誰かがここで終わる場合、これにはより簡単な解決策があります。 https://drupal.stackexchange.com/a/27956/10419 (から https://drupal.stackexchange.com/questions/26024/how-can-i-make-search-with-a-substring-of-a-word)
solr configディレクトリのschema.xmlのテキストタイプ定義にngramfilterを追加します。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" />
前に述べたように リンク Edismax(ExtendedDismaxQParser)を使用して、主要なワイルドカードを使用できます。それを試して、それが十分に速いかどうかを確認してください。
上記のリバースストリングに関するいくつかの情報は、こちらにもあります。 solr.ReversedWildCardFilterFactory