我有一个带有“uniqueKey”的lucene索引
<uniqueKey>ID</uniqueKey>
据我所知,这个密钥必须是“text”(不是int或long)。
<field name="ID" type="string" indexed="true" stored="true"/>
一个小应用程序使用lucene索引只搜索那些自上次运行该应用程序以来添加的记录。
为了达到这个目标,我正在尝试以下方法。
不幸的是我发现了一个问题:
A。)如何找到最高ID?
或B.)我如何将唯一键作为数字处理,而不是text / char
我尝试过类似的东西:
http://localhost:8080/solr/select/?defType=func&q=max(ID,0)&fq=ID:[$oldID+TO+$currentID]&fl=ID
返回奇怪的...认为:“999999”为最高值。这不正确,因为最高ID是1043725.我认为这是因为ID是文本字段
C。)也许还有其他方法只能搜索最后添加的记录?
感谢您提供任何帮助!
答案 0 :(得分:2)
Solr的uniqueKey字段可以支持Solr支持的任何数据类型类。虽然底层Lucene索引本身将所有存储/索引数据视为文本,但Solr管理转换以根据数据类型处理索引数据。
您指的是string field-type restriction,如果您在solr配置中启用了QueryElevationComponent。如果您尚未启用该功能,则可以使您的uniqueKey解决问题。