solr fq;子串的整数比较

时间:2013-09-11 17:43:59

标签: solr

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

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

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

示例数据可能是:

history:10
geography:33
math:29

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

  1. stringweights以“geography:”
  2. 开头
  3. 并且“geography:”之后的整数值是> = 10。
  4. 是否可以编写类似的solr查询?

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

1 个答案:

答案 0 :(得分: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)