1

solr 4.2.x で分散検索を使用していますが、インデックスの 1 つでクラッシュするようです。エラーは NullPointerException であり、次のケースにデバッグしました

ドキュメントを含む 2 つのインデックスがあるとします。

  • 一意のドキュメント id=idA のドキュメントを持つ index1

  • 一意のドキュメント id=idB のドキュメントを持つ index2

ids パラメータを使用してインデックスを検索すると、そのうちの 1 つがドキュメントを返しません - そこにあるにもかかわらず (管理パネルからのクエリがそれを返します)。

私が実行する要求:

http://solr_server:8983/solr/index1/select?ids=idA
http://solr_server:8983/solr/index2/select?ids=idB

そのうちの 1 つは、要求されたドキュメントを返しません。

スキーマの id 部分は次のようになります (両方のインデックスで同じです)。

<fields>

<types>
<fieldType name="textGeneral" class="solr.TextField">
            <analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType>

</types>

...
<field name="solrDocumentNumber" type="textGeneral" indexed="true" stored="true" required="false"/>
...
</fields>

<uniqueKey>solrDocumentNumber</uniqueKey>

標準の requestHandlers を使用します。

4

2 に答える 2

1

分析され、トークン化されたTextFieldは、一意のキーを適切に表現するものではありません。予期しない結果につながる可能性があります。少なくとも、StrFieldを使用してキーのフィールドを作成する必要があります。さらに良いのは、UUIDFieldです。SOLR での一意のキーの使用に関する Apache wiki には、いくつかの適切な推奨事項があります。

于 2013-04-19T16:33:22.133 に答える