【问题标题】:solr fq; integer comparison on a substring解决方案 fq;子字符串的整数比较
【发布时间】:2013-09-11 17:43:58
【问题描述】:

这可能是一个糟糕的标题......

但是假设我在一个多值字段中有一堆字符串

<field name="stringweights" type="text_nostem" indexed="true" stored="true" multiValued="true"/>

样本数据可能是:

history:10
geography:33
math:29

现在我想写一个 fq,在其中选择 solr 中的所有记录,其中:

  1. stringweights 以“geography:”开头
  2. “geography:”后面的整数值 >= 10。

是否可以编写这样的 solr 查询?

(不可能在名为“geography”的 solr 模式中创建一个整数字段,另一个名为“math”等,因为该字段的这些字符串部分在设计时是未知的,并且可以是数百/数千个不同的值。 )

【问题讨论】:

    标签: solr


    【解决方案1】:

    您可能想查看dynamic fields。在您的架构中声明一个动态字段,例如:

    <dynamicField name="stringweight_*" type="integer" indexed="true" stored="true"/>
    

    然后你可以有你的文档:

    stringweight_history: 10
    stringweight_geography: 33
    stringweight_math: 29
    

    您的过滤器查询很简单:

    fq=stringweight_geography:[10 TO *]
    

    您可能需要为此构建自定义索引器。或者使用带有数据导入处理程序的脚本转换器,如下所述:Dynamic column names using DIH (DataImportHandler)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2022-12-16
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多