外部文件字段不起作用&抛出空指针异常

时间:2013-03-21 12:14:45

标签: solr solr-query-syntax

我配置了我的外部文件字段配置,如下所示:

    < 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.Here keys是文档中size字段的值。

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

但是,当我使用以下查询时,它会抛出异常,如下所示,

  

java.lang.NullPointerException at   org.apache.solr.search.function.FileFloatSource.getFloats(FileFloatSource.java:273)     在   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.search.function.FileFloatSource.getCachedFloats(FileFloatSource.java:141)     在   org.apache.solr.search.function.FileFloatSource.getValues(FileFloatSource.java:84)     在   org.apache.lucene.queries.function.valuesource.MultiFloatFunction.getValues(MultiFloatFunction.java:65)     在   org.apache.lucene.queries.function.FunctionQuery $ AllScorer。(FunctionQuery.java:120)     在   org.apache.lucene.queries.function.FunctionQuery $ FunctionWeight.scorer(FunctionQuery.java:95)     在   org.apache.lucene.search.BooleanQuery $ BooleanWeight.scorer(BooleanQuery.java:323)     在

我应该做什么来毫无例外地执行此查询?

1 个答案:

答案 0 :(得分: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" />

请注意,indexedstored对外部文件字段没有意义。