2015-09-30 71 views
0

我正在使用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 
      } 
     ] 
    } 
} 
+0

這是我得到的結果是:{ 「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

+0

您應該將回答添加到問題中,而不是在註釋中單獨添加。 – YoungHobbit

+0

您應該至少使用最新的版本號用於您的模式,具體取決於您使用的是哪個版本的Solr。 LatLonTypes不能在4.0之前多值(模式版本<1.4 IIRC)。 – MatsLindh

回答

0

要一個過濾器添加到您的搜索如記錄here我beleive。現在你已經定義了參數,但是沒有過濾任何東西。

&fq={!geofilt pt=4.89,-4.05 sfield=geoloc d=1} 
0

它看起來像Solr沒有索引拉特一直長。 Solr在C:\ Program Files \ solr \ server \ solr \\ conf中創建一個名爲managed_schema的文件,它覆蓋我的schema.xml。我擺脫了managed_schema文件,它開始使用schema.xml(我不得不添加一些缺少的類型到schema.xml來使其工作)。