2016-10-13 4 views
0

solrを使用してデータのインデックスを作成しようとしています。 managment-shemaでは、フィールドのマルチプル値をfalseに定義しています。データを投稿すると、エラーmultiple values encountered for non multiValued fieldが返されます。
私が理解したいことは、例えば、
のように、solrが多値フィールドを検出する方法です。このフレーズaa bb cc ddを持っていて、それを単一の値としてインデックス化/保存したいのであれば、なぜそれを拒否しますか?
管理コンソールで分析を使用していくつかのテストを行いましたが、「:」、「/」というフレーズが複数の値であると考えているので、ファイルがあると思いますsolrが複数の値を検出する方法を定義します。
はここに事前に
編集
をありがとう、私の管理-シェマから、問題を引き起こす場です。
<field name="name" type="text_general" indexed="true" stored="true" .multiValued="false"/>solrが多値フィールドを検出する方法

+0

このエラーの原因となるドキュメントの例を教えてください。 '' <フィールド名= "A">のaa bbの <フィールド名= "A">のcc DD '' –

+0

私はフィルムを使用しています:あなたが何かを持っている場合 にのみ多値考慮されるべきです。 "名前": "\"奇妙なAl \ "Yankovic:究極のビデオコレクション":solrによって与えられたjsonの例、そしてここに問題を引き起こす行があります。 – aName

+0

エラーを出すフィールドのスキーマはどのように表示されますか? films.jsonを見れば、それは多値とはみなされません。 –

答えて

0

あなたは多値フィールドとテキストのトークン化プロセスを混乱させているようです。

多値フィールドは、クライアントがSolrに値のリストを提供する場合です。それらは異なるものとして扱われ、配列構造で返されます。

管理UIの分析画面には、検索エンジンを動作させるトークン化プロセスが表示されます。フィールドは、索引付けされたものと同様に(元の)表現を格納しています。索引付けされたもの(分析UIで示されるもの)は、高速検索を可能にするために処理されたバージョンです。

したがって、値 "AA BB CCはDD" text_generalフィールドに文字列として送信した場合、一つの値として格納され、しかしトークンAA、BBCC、及びDDとして索引付けされで、ccを検索して見つけることができます。

+0

あなたは正しかった、私はその部分を誤解していたが、どのようにして異種のフィールドを検出できるのか?そして、別のものは、フレーズの索引付けと格納の違いは何か?例えば** aa bb cc dd **多値であるかどうか – aName

関連する問題