0

Solr 4.3 で本と著者のインデックスを作成するために haystack によって作成されたスキーマがあります。検索を実行すると、ハイフンを含む検索用語を除いてすべて正常に機能します。

バックスラッシュを使用してそれらをエスケープする必要があることはわかっていますが、solr Web インターフェイスを使用しても正しいドキュメントを見つけることができません。

下のスクリーンショットに示されているように、full_name:(ukiyo)を使用して見つけることができる浮世絵という名前の作者がいます。full_name :(ukiyo-e)またはfull_name:(ukiyo-e)を入力すると、何も見つかりません。

浮世絵を検索すると 1 つ一致する浮世絵

編集

スキーマ情報:

<fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
  </analyzer>
</fieldType>
...
<field name="full_name" type="edge_ngram" indexed="true" stored="true" multiValued="false" />

アナライザーの結果: ここに画像の説明を入力

4

1 に答える 1

3

[分析] メニューを使用して、索引付けとクエリを別々に用語を分析します。具体的には、インデックス時とクエリ時に同様のテキスト処理ルーチンを使用する必要があります (スキーマの full_name フィールドを参照してください)。クエリ "浮世絵" を 2 つの用語ukiyoeにトークン化せずに、インデックス作成中にトークン化すると、完全な用語を見つけることができなくなりますukiyo-e

于 2013-09-02T10:59:17.277 に答える