8

Latとフィールドを含むsolrのドキュメントがありLngます。storeとの両方から取得したデータを含むという新しいフィールドを追加する必要がLatありLngます。フィールドを使用しようとしましcopyFieldたが、エラーが発生しました:

フィールドストアは複数値ではなく、複数のcopyFieldsの宛先(2)

これが私の設定です:

<fields>
  <field name="lat" type="sdouble" indexed="true" stored="true" required="true" multiValued="false" />
  <field name="lng" type="sdouble" indexed="true" stored="true" required="true" multiValued="false" /> 
  <field name="store" type="text" indexed="true" stored="true"/>
</fields> 

<copyField source="lat" dest="store"/> 
<copyField source="lng" dest="store"/> 

同じ宛先フィールド内の2つのフィールドの内容をコピーすることは可能ですか?

4

4 に答える 4

7

時代遅れかもしれませんが、「updateRequestProcessorChain」を使用できます

<updateRequestProcessorChain name="composite-position">
  <processor class="solr.CloneFieldUpdateProcessorFactory">
    <str name="source">lat</str>
    <str name="source">lng</str>
    <str name="dest">store</str>
  </processor>
  <processor class="solr.ConcatFieldUpdateProcessorFactory">
    <str name="fieldName">store</str>
    <str name="delimiter">;</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
于 2016-10-16T13:32:01.937 に答える
6

文脈なしであなたの質問を取る:

同じ宛先フィールド内で 2 つのフィールドの内容をコピーすることはできますか?」

答えはイエスです。サンプル スキーマでは、複数のフィールドを共通の「テキスト」フィールド (multiValued) にコピーして、1 つのフィールドによる検索をより簡単にします。

しかし、より多くのコンテキストを見ると、実際にやろうとしているのは、copyField を使用した Solr の schema.xml がフィールドの入力ペア (あなたの場合は lat と lon) を取り、それらを中間コンマで特定のフィールドに連結できるかどうかを判断することです。答えはノーだ。データを Solr に渡すときにこの方法でデータを準備するか、DIH (DataImportHandler) を使用している場合は DIH トランスフォーマーを使用する必要があります。別の方法を提案するのは躊躇しますが、ハックとして、lat と lon を store_0_coordinate と store_1_coordinate に入れてみてください (またはその逆かもしれません)。しかし実際には、これはうまくいくかもしれませんが、推奨される方法ではありません。

于 2012-06-22T20:39:35.447 に答える
3

store次のように設定しようとすることができますmultivalued

<field name="store" type="location" indexed="true" stored="true" multiValued="true" />
于 2012-06-22T10:49:28.230 に答える
0

あなたはそのようなことを試すことができます:

1 つの場所に 2 つのダブル

DIH (Data Importer Handler) を使用できる場合。それらが役立つことを願っています!

于 2012-06-25T07:05:45.827 に答える