gpt4 book ai didi

mysql - Solr 范围查询对于某些字段无法以正确的方式工作

转载 作者:行者123 更新时间:2023-11-29 07:12:54 25 4
gpt4 key购买 nike

我在 solr 文档中添加了 2 个字段 weight_valuenofyears_1

两个字段的架构如下

<field name="weight_value" type="string" indexed="true" stored="true" />
<field name="nofyears_1" type="string" indexed="true" stored="true" />

两者都存储为字符串,因为它存储数值。

此处的问题是范围查询在 weight_value 字段上完美运行,但在 nofyears_1 字段上不起作用。

像这样

weight_value:[40 TO 50] => Get all the results only between 40 TO 50

但是

nofyears_1:[1 TO 10] => Doesn't get results between 1 TO 10, but it fetches the result of 1 & 10 only.

以及,

nofyears_1:[1 TO 5] => It fetches the result of 1, 5 & 15 only.

为什么我的范围查询在该字段上不起作用?

两个字段都是字符串没有多个值

最佳答案

如果您想要使用数值进行范围查询,请使用数值字段。现在的问题是您使用的是字符串字段,并且字符串的排序顺序是:

1
10
11
...
2
20
...
40
41
..
49
50

.. 因此,如果您在字符串字段中查询 [1 TO 10],您将只得到前两个条目(而 40 TO 50 将检索 40 中的所有值)到 50 - 如果您有 400 或 499 的条目,它们也会被包括在内):

..
--
1
10
--
11
...

如果您为数据使用正确的字段类型(在本例中为整数/int),范围查询将按您的预期工作。

请记住,更改字段类型后必须重新建立索引(这取决于您的设置方式,涉及更改 schema.xml 中的定义或通过托管架构 API)。

关于mysql - Solr 范围查询对于某些字段无法以正确的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com