1

外部ファイル フィールドの構成を次のように構成しました。

    < field name="idRank" type="idRankFile" indexed="true" stored="true" omitNorms="true" omitTermFreqAndPositions="true" valType="pfloat" />

    < fieldType name="idRankFile" keyField="id" defVal="10" stored="true" indexed="true" class="solr.ExternalFileField" valType="pfloat|float|tfloat" />

以下は、:external_idRank.txt という名前のファイルに保存した値です。ここでのキーは、ドキュメントのサイズ フィールドの値です。

2938025 = 100.0 

4030380 = 115.0

9751 = 125.0

12738 = 135.0 

9752 = 145.0

idRank次のクエリを使用して結果を取得し、値に基づいて並べ替えました。

/solr/collection1/select/?&q=content:* _ val _:"sum(idRank,1)"&fl=size&rows=100

しかし、次のクエリを使用すると、次のように例外がスローされます。

org.apache.solr.search.function.FileFloatSource.getFloats(FileFloatSource.java:273) の java.lang.NullPointerException org.apache.solr.search.function.FileFloatSource.access$000(FileFloatSource.java:51) の org .apache.solr.search.function.FileFloatSource$2.createValue(FileFloatSource.java:147) org.apache.solr.search.function.FileFloatSource$Cache.get(FileFloatSource.java:190) org.apache.solr. org.apache.lucene.queries.function.valuesource.MultiFloatFunction の org.apache.solr.search.function.FileFloatSource.getValues(FileFloatSource.java:84) の search.function.FileFloatSource.getCachedFloats(FileFloatSource.java:141) getValues(MultiFloatFunction.java:65) at org.apache.lucene.queries.function.FunctionQuery$AllScorer.(FunctionQuery.java:120) at org.apache.lucene.queries.function.FunctionQuery$FunctionWeight.scorer(FunctionQuery.java:95) at org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:323)

このクエリを例外なく実行するにはどうすればよいですか?

4

1 に答える 1

1

ファイルの内容が次のようになる代わりに:

2938025 = 100.0

4030380 = 115.0

9751 = 125.0

12738 = 135.0

9752 = 145.0

https://lucene.apache.org/solr/api-4_0_0-BETA/org/apache/solr/schema/ExternalFileField.htmlで指定されているとおりにファイルを保持してみてください。

2938025=100.0
4030380=115.0
9751=125.0
12738=135.0
9752=145.0

また、fieldType 定義を次のように変更してみてください。

<fieldType name="idRankFile" keyField="id" defVal="10" class="solr.ExternalFileField" valType="float" />

indexedandstoredは外部ファイル フィールドには意味がないことに注意してください。

于 2013-03-21T22:56:39.803 に答える