solr:查找最后/最高唯一键和范围搜索

问题描述

| 我有一个带有“ uniqueKey”的lucene索引
<uniqueKey>ID</uniqueKey>
据我所知,此键必须是\“ text \”(不是int或long)。
<field name=\"ID\" type=\"string\" indexed=\"true\" stored=\"true\"/>
一个小型应用程序使用lucene索引来仅在那些自该应用程序上次运行以来添加的记录中进行搜索。 为了实现该目标,我正在尝试以下方法。 加载最后一个ID(来自flatfile) 进入变量$ oldID 获取当前(最后/最高)ID 从Solr / lucene到变量 $ currentID 在之间执行范围搜索 $ oldID和$ currentID 将$ currentID保存到平面文件中 下一次搜索/下一次运行 不幸的是,我注意到一个问题: A.)如何找到最高的ID? 或B.)我如何将唯一键作为数字而不是文本/字符处理 我尝试过这样的事情:
http://localhost:8080/solr/select/?defType=func&q=max(ID,0)&fq=ID:[$oldID+TO+$currentID]&fl=ID
...返回奇怪的想法:\“ 999999 \”为最高值。这是不正确的,因为最高的ID是1043725。我认为这是因为ID是一个文本字段 C.)也许还有其他方法只能在最后添加的recoreds上进行搜索? 感谢您的任何帮助!     

解决方法

Solr \的uniqueKey字段可以支持Solr支持的任何数据类型类。基本的Lucene索引本身将所有存储/索引的数据视为文本,而Solr管理转换以根据数据类型处理索引的数据。 您所指的字符串字段类型限制是是否已在solr配置中启用QueryElevationComponent。如果尚未启用该功能,则可以将uniqueKey用作解决问题的时间很长。