7

SOLRで部分文字列の一致を見つける方法がわからないようです。接頭辞に基づいて一致を見つけたので、ハムをハンバーガーと一致させることができます。

ハンバーガーにも一致する「ハンバーガー」を検索するにはどうすればよいですか?私はハンバーガーを試しましたが、これはエラー「*」または「?」を投げました WildcardQueryの最初の文字としては許可されていません。

SOLRを使用してサブストリングを一致させるにはどうすればよいですか?

4

3 に答える 3

9

「apachesolr部分文字列」を検索した後に誰かがここにたどり着いた場合、これに対するより簡単な解決策があります: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" />
于 2012-10-31T14:58:55.733 に答える
3

前にリンクで述べたように、 edismax (ExtendedDismaxQParser) で先頭のワイルドカードを使用できます。それが十分に速いかどうかを確認するために試してみてください。

上記の reversedstring に関する詳細情報は、solr.ReversedWildcardFilterFactoryにもあります。

于 2010-06-22T22:41:34.297 に答える
3

これを有効にすることはできますが、非常にリソースを消費します (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

現在、issues.apache.org はダウンしているようです。たとえば、Googleキャッシュを使用してみてください。

于 2010-06-21T21:01:00.247 に答える