0
我已經搜索了所有的溢出/交換站點,並花了數小時對Google無濟於事,所以我希望有人是Solr的天才,並能告訴我我哪裏出錯了。針對TrieDoubleField的Solr範圍查詢出現意外的負值?
我們正在處理之前的搜索服務器和Solr之間的轉換,它要求我們暫時將我們的地理數據存儲在不同的緯度和經度字段中。根據衆多來源的推薦,我已經使用solr.TrieDoubleField
定義了這些字段。
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
<field name="latitude_1" type="tdouble" indexed="true" stored="false" multiValued="false" required="false" />
<field name="longitude_1" type="tdouble" indexed="true" stored="false" multiValued="false" required="false" />
,我遇到的問題是對經度值範圍的查詢(這主要是小於零)不會在所有的工作。奇怪的是,如果我將查詢值作爲正數輸入,則範圍工作,但這不會激發信心。
下面是一個例子查詢:
longitude_1:[-95 TO -94]
這不返回任何結果。不過,如果我查詢與正數,像這樣:
longitude_1:[94 TO 95]
我得到這些結果(我用fl=longitude_1
爲了簡潔):
<doc>
<str name="longitude_1">-94.60046</str>
</doc>
<doc>
<str name="longitude_1">-94.03403</str>
</doc>
<doc>
<str name="longitude_1">-94.03403</str>
</doc>
我注意到,值顯示在<str>
標籤,但我假設這是內部TrieDoubleField
的字符串輸出表示形式。如果情況並非如此,那麼在我的模式或Solr配置中可能還有其他問題。