0

私は乗り越えられないように見えるsolrに問題があります...

「マルチェロ ブラック」(単語間に通常のスペースあり)を検索すると、期待どおりの結果が得られます(15 件)。しかし、「マルチェロ ブラック」(基本的に、単語間に通常のスペースではなく表意文字のスペース \u3000 がある) を検索しても、結果が得られません。

私の fieldType 設定はかなり基本的です:

<fieldType name="text_cjk" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.CJKTokenizerFactory"/>
  </analyzer>
</fieldType>

追加してみました

<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-japanese.txt"/>

のようなマッピングで

"\u3000" => "\u0020"

あるいは

"\u3000" => " "

しかし、それは役に立ちませんでした。

も追加してみました

<filter class="solr.PositionFilterFactory" />

Language Analysis: Chinese, Japanese, Koreanで提案されているように、最初の検索で 200 件以上の結果が得られ始め、2 回目の検索で 1000 件以上の結果が得られました。もったいない。

solr バージョン 3.5 を実行しているため、CJKBigramFilterFactory を使用することは論外です。(ただ言っているだけで、それがとにかく役立つかどうかはわかりません。)

solr 構成に関するかなり多くの日本のブログを読んでください (これをとても簡単にしてくれた Google Chrome に感謝します!)、すべての例には CJKBigramFilterFactory だけがあり、場合によっては LowerCaseFilterFactory が追加されていますが、私の場合は何も役に立ちません。

これを機能させるために他に何を試みることができますか?

4

1 に答える 1

0

実際には、Drupal モジュールのSearch APIがクエリ文字列を solr に渡す前に解析する方法に問題があることが判明しました。モジュールへの小さなパッチで修正されました。問題Split query on whitespace, not only on space を参照してください。

于 2013-08-29T15:15:29.543 に答える