0

Solr/Lucene スキーマの一意のキーをtext_general代わりに使用できますか? 私はそれを試しましたが、Solr はデータを上書きしません。別の行を追加するだけなので、データが複製されます。

からコメントアウトしましたsolrconfig.xml

<searchComponent name="elevator" class="solr.QueryElevationComponent" >
<!-- pick a fieldType to analyze queries -->
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>

私のschema.xml持っている

<uniqueKey>_id</uniqueKey>
<field name="_id" type="text_general" indexed="true" stored="true" default="NEW"/>

どんな助けでも大歓迎です。

4

1 に答える 1

2

フィールドには任意のタイプを使用できますuniqueKey。ドキュメントから読むことができるように:

この宣言を使用して、インデックス内にすべてのドキュメントで一意である必要があるフィールドがあることを Solr に通知できます。このフィールドに既存のドキュメントと同じ値を含むドキュメントが追加されると、古いドキュメントは削除されます。

スキーマが uniqueKey フィールドを持つことは必須ではありません。

solrconfig.xml で QueryElevationComponent を有効にしている場合は、スキーマに StrField タイプの uniqueKey が必要であることに注意してください。たとえば、int フィールドにすることはできません。

重要なのは、uniqueKey フィールドが一意であること、つまり、同じドキュメントが同じ識別子を持つことです。既存のメカニズムが機能する場合は、その方法でのみ交換してください。uuidフィールド タイプを使用すると、ドキュメントごとに異なる ID が自動的に割り当てられるため、ドキュメントを置き換えることはありません。

于 2012-09-25T14:26:58.457 に答える