我正在使用Solr 5.3.0並評估地理空間搜索。我遵循每個在線參考的說明並查看半徑之外的結果。您是否在模式或數據中看到任何問題?Solr空間查詢返回搜索範圍外的位置
http://localhost:8983/solr/demo2/select?q=*.*&wt=json&indent=true&spatial=true&pt=4.89%2C-4.05&sfield=geoloc&d=1
<schema name="weather lookup index" version="1.3">
<types>
<fieldType name="integer" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="name" type="text" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="geoloc" type="location" indexed="true" multiValued="false" stored="true"/>
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false"/>
</fields>
<defaultSearchField>name</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
</schema>
結果:
{
"responseHeader": {
"status": 0,
"QTime": 2,
"params": {
"q": ".",
"pt": "4.89,-4.05",
"d": "1",
"indent": "true",
"spatial": "true",
"sfield": "geoloc",
"wt": "json",
"": "1443653671468"
}
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"name": [ "test" ],
"geoloc": [ "40.89,-86.05" ],
"id": "9711c69e-9ac3-4302-a41d-719f57fde24c",
"_version": 1513779446777118700
}
]
}
}
這是我得到的結果是:{ 「responseHeader」:{ 「狀態」:0, 「QTIME」:2, 「PARAMS」:{ 「Q」: 「*。*」, 「 pt「:」4.89,-4.05「,」 「」d「:」 : 「JSON」, 「_」: 「1443653671468」 } }, 「響應」:{ 「numFound」:1, 「開始」:0, 「文檔」:[{ 「名稱」:[ 「測試」 ], 「geoloc」:[ 「40.89,-86.05」 ], 「ID」: 「9711c69e-9ac3-4302-a41d-719f57fde24c」, 「_version_」 :1513779446777118700 } ] } } – frosty
您應該將回答添加到問題中,而不是在註釋中單獨添加。 – YoungHobbit
您應該至少使用最新的版本號用於您的模式,具體取決於您使用的是哪個版本的Solr。 LatLonTypes不能在4.0之前多值(模式版本<1.4 IIRC)。 – MatsLindh