簡體   English   中英

Solr空間查詢返回的位置超出搜索范圍

[英]Solr spatial query returning location outside the search range

我正在使用Solr 5.3.0並評估地理空間搜索。 我按照每個在線參考的說明進行操作,並看到超出半徑范圍的結果。 您在架構或數據中看到任何問題嗎?

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
            }
        ]
    }
}

相信您想按此處所述在搜索中添加過濾器。 現在,您可以定義參數,但不過濾任何內容。

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

看來Solr一直沒有索引lat。 Solr在C:\\ Program Files \\ solr \\ server \\ solr \\\\ conf中創建一個覆蓋了我的schema.xml的文件Managed_schema。 我擺脫了Managed_schema文件,它開始使用schema.xml(我必須向schema.xml中添加一些缺少的類型才能使其工作)。

暫無
暫無

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

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