我正在使用Solr索引一些东西。
我有一个带有根实体和子实体的 dataconfig.xml ,如下所示:
<entity name="item" query="select id, qty from item">
<field column="id" name="id" />
<field column="qty" name="qty" />
<entity name="prices" query="select price from prices where item_id='${item.id}'">
<field column="price" name="price" />
</entity>
</entity>
以及相应的 schema.xml :
<fields>
<field name="id" type="integer" indexed="true" stored="true" />
<field name="qty" type="sint" indexed="true" stored="true" />
<field name="price" type="sint" indexed="true" stored="true" multiValued="true" />
</fields>
字段数量(来自根实体)和价格(来自子实体)都是 sint 类型(允许范围)查询),价格是 multiValued ,因为一个项目可能有多个价格值。
当我对qty进行范围查询时,它按预期工作。例如,qty:[* TO 10]
返回的元素的数量最多为10。
但是当我对价格进行范围查询时,它根本不起作用:price:[* TO 100]
返回价格甚至超过100的元素!
因此我的问题:是范围查询应该在“子实体”的多值字段上工作吗?