在 Solr 中,有没有办法索引double类型的值,以便 in 可以匹配精确的 double 值和该值的下限?例如:
给定索引值:12.34
- 查询值:12.34 = 匹配
- 查询值:12 = 匹配
- 查询值:1234 = 不匹配
- 查询值:12.3 = 不匹配
如果仍然可以使用范围查询,那就太好了。
您可以尝试以下选项:-
如果您正在提供数据,请在客户端处理它以将其索引为具有值的多值字段,双精度值和舍入值
如果您使用 DIH,您可以轻松使用ScriptTransformer将其转换为多值字段
例子 -
数据配置 - 添加自定义字段 -
<script><![CDATA[
function addfield(row){
var fieldName = row.get('double_value');
// Round it
row.put(fieldName, double_rounded);
return row;
}
]]></script>
由于字段为 Mark Float,范围查询也应该可以正常工作。