1

在 Solr 中,有没有办法索引double类型的值,以便 in 可以匹配精确的 double 值和该值的下限?例如:

给定索引值:12.34

  • 查询值:12.34 = 匹配
  • 查询值:12 = 匹配
  • 查询值:1234 = 不匹配
  • 查询值:12.3 = 不匹配

如果仍然可以使用范围查询,那就太好了。

4

1 回答 1

0

您可以尝试以下选项:-

  1. 如果您正在提供数据,请在客户端处理它以将其索引为具有值的多值字段,双精度值和舍入值

  2. 如果您使用 DIH,您可以轻松使用ScriptTransformer将其转换为多值字段

例子 -

数据配置 - 添加自定义字段 -

<script><![CDATA[
        function addfield(row){
            var fieldName = row.get('double_value');
    // Round it
            row.put(fieldName, double_rounded);
            return row;
        }
]]></script>
  1. 否则,只需编写一个自定义过滤器,它将原始标记和舍入值都存储在索引中。

由于字段为 Mark Float,范围查询也应该可以正常工作。

于 2013-06-04T03:52:15.243 回答