簡體   English   中英

Solr范圍查詢不適用於某些字段的正確方式

[英]Solr Range Query Does not work in Proper way for some fields

我在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.

為什么我的范圍查詢在該字段上不起作用?

這兩個字段都是string沒有多個值

如果要使用數字值進行范圍查詢,請使用數字字段。 現在的問題是您正在使用字符串字段,並且字符串的排序順序為:

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

..因此,如果您要在字符串字段中查詢[1 TO 10] ,則只會返回前兩個條目(而40 TO 50將從40到50檢索所有值-如果您輸入的值為400或499(它們也將包括在內):

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

如果對數據使用適當的字段類型(在這種情況下為integer / int),則范圍查詢將按預期工作。

請記住,更改字段類型后必須重新索引(這取決於您的設置方式,涉及更改schema.xml的定義或通過托管模式API)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM