0

solrjを介してページにインデックスを付けるために、wikiページに示されている例に従っています。これを機能させるためにさまざまな方法を試しましたが、どういうわけか、次のようなエラーが発生し続けます。

エラー:[doc = 1]非multiValuedフィールドIDで複数の値が見つかりました:[1、34d47c153efcf221]

私のスキーマは非常に単純です(テスト用)

    <field name = "id" type = "int" indexed = "true" Stored = "true" required = "true" />
    <field name = "name" type = "string_filename" indexed = "true" Stored = "true" required = "true" />
    <field name = "size" type = "int" indexed = "true" Stored = "true" required = "true" />
    <field name = "created_at" type = "date" indexed = "true" Stored = "true" />
    <field name = "updated_at" type = "date" indexed = "true" Stored = "true" />

コードは次のようになります。

String solrHost = "localhost";
String coreName = "files";
SolrServer solr = null;
try {
    solr = new CommonsHttpSolrServer("http://"+solrHost+":8983/solr/"+coreName);
} catch (Exception e) {
    System.out.println("ERROR:" + e.getMessage());
}

SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", 1);
doc.addField("name", "testfile.pdf");
doc.addField("size", 34234234);

try{
    `solr.add(doc);
}    catch (Exception e) {
    System.out.println("ERROR adding docs: " + e.getMessage());
}

try{
    solr.commit();
} catch (Exception e) {
    System.out.println("commit FAiled.");
}

うまくいけば、私が見逃しているのは本当に些細なことです。どんな助けでも大歓迎です:)

4

2 に答える 2

0

多くの読書と実験の後。私は問題が何であるかを知りました。重複除外を有効にするために、スキーマ ファイルに別のフィールドを追加する必要がありました。のようなもの

<field name="signature" type="string" stored="true" indexed="true" multiValued="false" / >

次に、solrconfig で、「signatureField」要素にこのフィールド「signature」を設定する必要があります。

 <updateRequestProcessorChain name="dedupe">
   <processor class="solr.processor.SignatureUpdateProcessorFactory">
     <bool name="enabled">true</bool>
     <str name="signatureField">signature</str>
     <bool name="overwriteDupes">false</bool>
     <str name="fields">id,name</str>
     <str name="signatureClass">solr.processor.Lookup3Signature</str>
   </processor>
   <processor class="solr.LogUpdateProcessorFactory" />
   <processor class="solr.RunUpdateProcessorFactory" />

貢献してくれたみんなに感謝します!:)

于 2012-04-30T21:54:07.497 に答える
0

ID の 2 つの値、つまり 1 と 34d47c153efcf221 のインデックスを作成しようとしているようです。

于 2012-04-30T10:22:33.533 に答える