在solr中创建一个字段,该字段将索引double值和该double值的最低值

时间:2013-06-03 19:33:26

标签: solr lucene

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

给出索引值: 12.34

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

如果仍然可以使用范围查询,那将是很好的。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下选项: -

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

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

  3. 示例 -

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

    <script><![CDATA[
            function addfield(row){
                var fieldName = row.get('double_value');
        // Round it
                row.put(fieldName, double_rounded);
                return row;
            }
    ]]></script>
    
    1. 否则,只需编写一个自定义过滤器,它将原始令牌和Rounded值存储在索引中。
    2. 如果字段为Mark Float,则范围查询也可以正常工作。