1

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

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

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

样本数据可能是:

history:10
geography:33
math:29

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

  1. stringweights 以“地理:”开头
  2. 并且“地理:”之后的整数值> = 10。

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

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

4

1 回答 1

1

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

<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)

于 2013-09-11T19:20:21.313 回答