1

Solrにn-nnnnnnnのような形式のチケットの2番目の7桁の部分のみを抽出させようとしています。

もともと私は完全なチケットを一緒に保管したいと思っていました。ドキュメントによると、数字と数字は一緒に保持する必要がありますが、しばらくの間この問題を解決し、コードを調べた後は、そうではないと思います。Solrは常に2つの用語を生成します。したがって、nの最初の桁に多数の一致があるのではなく、2番目の部分だけでより良いクエリ結果を取得できると思います。ダッシュの代わりにAを使用します。

    <charFilter class="solr.PatternReplaceCharFilterFactory"
      pattern="\b\d[A](\d\d\d\d\d\d\d)\b" replacement="$1" replace="all" 
      maxBlockChars="20000"/>

1A1234567は正常に解析されますが、-\ b "replacement =" $ 1 "replace =" all "maxBlockChars =" 20000 "/>

1-1234567を解析しません

したがって、ハイフンの問題のように見えます。-(escaped)と[-]と\u002Dと\x{45}と\x045を試しましたが成功しませんでした。

私はその周りにcharフィルターを配置してみました:

   <charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt"/>
    <charFilter class="solr.PatternReplaceCharFilterFactory"
      pattern="\b\d[-](\d\d\d\d\d\d\d)\b" replacement="$1" replace="all" maxBlockChars="20000"/>
    <charFilter class="solr.MappingCharFilterFactory" mapping="mapping2.txt"/>

マッピングあり:

"-" => "z"

その後

"z" => "-"

Flexトークン化でハイフンが使い果たされ、charフィルターでも使用できないようです。

Solr / Luceneのハイフン/ダッシュでもっと成功した人はいますか?ありがとう

4

1 に答える 1

3

Solr が最近の Lucene (3.x 以降だと思います) を使用している場合、StandardAnalyzer は常にハイフンを区切り文字として扱うようになったため、StandardAnalyzer ではなく ClassicAnalyzer を使用する必要があります。

于 2012-11-26T20:23:53.957 に答える