0

Solr でインデックス化された一連のフィールドがあります。

既存のドキュメント:

<doc>
   <field name="id">123</field> 
   <field name="created_by">test_user</field> 
   <field name="user_updated"/> 
</doc>

q=created_by:test_user として検索すると、このドキュメントが返されます。「created_by」と「user_updated」の両方が「text」フィールドにコピーされます。

フィールドを次のように更新しようとしています:

http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary
'<update>
  <add>
    <doc>
      <field name="id">123</field>
      <field name="user_updated" update="set">abc</field>
    </doc>
   </add>
</update>'

これにより、フィールド「user_updated」が正しく更新され、「q=abc」または「q=test_user」を検索すると、このドキュメントが返されます。ただし、 q=created_by:test_user の既存のインデックス結果は機能しなくなりました。

私はここで何か悪いことをしていますか?またはそれを機能させる他の方法はありますか?

4

1 に答える 1

0

フィールドはcreated_by格納済みとしてマークされていますか?
また、 schema.xml に version フィールドがありますか? solr-4-0-partial-documents-update を
確認してください。 更新が必要なすべてのフィールドは、保存済みとしてマークする必要があります。 動的フィールドは、既存のフィールドのみが更新されるため、問題はありません。残りはそのままです。

于 2013-07-05T14:33:38.340 に答える