(转载)solr实现满足指定距离范围条件的搜索

 配置schema.xml

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="aifang-loupan" version="1.1">
    <types>
        <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="integer" class="solr.IntField" omitNorms="true"/>

        <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>

        <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
        <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>

        <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>

        <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
        <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
        <fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField"/>
        <fieldtype name="location" class="solr.LatLonType" subFieldSuffix="_d"/>    
        <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
              <analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
                <filter class="solr.LowerCaseFilterFactory"/>
              </analyzer>
              <analyzer type="query">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
                <filter class="solr.LowerCaseFilterFactory"/>
              </analyzer>
        </fieldType>
    
    </types>

    <fields>
        <field name="loupan_id" type="integer" indexed="true" stored="true" required="true"/>
        <field name="city_id" type="integer" indexed="true" stored="false"/> 
        <field name="loupan_name" type="text" indexed="true" stored="false"/>
        <field name="loupan_pinyin" type="string" indexed="true" stored="false"/>
        <field name="alias_name" type="text" indexed="true" stored="false"/>
        <field name="former_name" type="text" indexed="true" stored="false"/>
        <field name="region_title" type="text" indexed="true" stored="false" />
        <field name="region_id" type="int" indexed="true" stored="false"/>
        <field name="sub_region_title" type="text" indexed="true" stored="false"/>
        <field name="sub_region_id" type="int" indexed="true" stored="false"/>
        <field name="regions_string" type="string" indexed="true" stored="false" multiValued="true"/>
        <field name="address" type="text" indexed="true" stored="false"/>
        <field name="proxy_address" type="text" indexed="true" stored="false"/>
        <field name="chanquan" type="text" indexed="true" stored="false"/>
        <field name="build_type" type="text" indexed="true" stored="false" multiValued="true"/>
        <field name="property_type" type="text" indexed="true" stored="false" multiValued="true"/>
        <field name="fitment_type" type="text" indexed="true" stored="false" multiValued="true"/>
        <field name="search_kw" type="text" indexed="true" multiValued="true" stored="false" />  
        <field name="investor" type="text" indexed="true" stored="false"/>
        <field name="company" type="text" indexed="true" stored="false"/>
        <field name="loop_line"   type="text"  indexed="true" stored="false" />     
        <field name="status_sale" type="integer" indexed="true" stored="false"/>
        <field name="status_disp" type="integer" indexed="true" stored="false"/>
        <field name="search_sale" type="integer" indexed="true" stored="false" multiValued="true"/>
        <field name="jiaofang_date" type="sint" indexed="true" stored="false"/>
        <field name="kaipan_date" type="sint" indexed="true" stored="false"/>
        <field name="price" type="sint" index="true" stored="false"/>
        <field name="baidu_lat"   type="sfloat"  indexed="true" stored="false"/>
        <field name="baidu_lng"   type="sfloat"  indexed="true" stored="false"/>
        <field name="lat"  type="sfloat"  indexed="true"  stored="false"/>
        <field name="lng"  type="sfloat"  indexed="true"  stored="false"/>
        <field name="metro_subway_id"  type="integer" indexed="true"  stored="false" multiValued="true" />
        <field name="metro_station_id" type="integer" indexed="true"  stored="false" multiValued="true" />
        <field name="metro_enabled"    type="integer" indexed="true"  stored="false"/>
        <field name="metro_info"       type="text"  indexed="true" stored="false" multiValued="true" />
       <field name="loop_line_id" type="integer" indexed="true" stored="false"/>
       <field name="property_type_id" type="integer" indexed="true" stored="false" multiValued="true"/>
       <field name="build_type_id" type="integer" indexed="true" stored="false" multiValued="true"/>
       <field name="fitment_type_id" type="integer" indexed="true" stored="false" multiValued="true"/>
       <field name="developer_id" type="integer" indexed="true" stored="false" multiValued="true"/>
       <field name="developer_title" type="string" indexed="true" stored="false"/>
       <field name="business_id" type="integer" indexed="true" stored="false"/>
       <field name="business_title" type="string" indexed="true" stored="false"/>
       <field name="loupan_extend_type" type="sint" indexed="true" stored="false" multiValued="true"/>
        <field name="trip_fitment_style" type="text" indexed="true" stored="false" />
        <field name="trip_feature_recommend" type="text" indexed="true" stored="false" multiValued="true" />
        <field name="trip_spot" type="text" indexed="true" stored="false" multiValued="true" />
        <field name="trip_transport" type="text" indexed="true" stored="false" multiValued="true" />
        <field name="trip_scenic_region" type="text" indexed="true" stored="false" multiValued="true" />
        <field name="trip_property_service" type="text" indexed="true" stored="false" multiValued="true" />
        <field name="trip_scenic_spot" type="text" indexed="true" stored="false"/>
        <field name="trip_created" type="sint" indexed="true" stored="false" />
        <field name="is_trip" type="int" indexed="true" stored="false" />
        <field name="level" type="sint" indexed="true" stored="false"/>
        <field name="loupan_pv_day" type="sint" indexed="true" stored="false" />
        <field name="operator_ids" type="integer" indexed="true" stored="false" multiValued="true"/>
        <field name="operator_names" type="string" indexed="true" stored="false" multiValued="true"/>
        <dynamicField name="*_grade" type="sint" indexed="true" stored="false" />
        <field name="updated" type="sint" indexed="true" stored="false" />  
        <field name="news_id" type="int" indexed="true" stored="false" />  
        <field name="news_update" type="sint" indexed="true" stored="false" />  
        <field name="rank" type="sfloat" indexed="true" stored="false" />
        <field name="sale_order" type="sint" indexed="true" stored="false" />
        <field name="vip_order" type="string" indexed="true" stored="false" />
        <field name="kaipan_order" type="sint" indexed="true" stored="false"/>
        <field name="created" type="sint" indexed="true" stored="false" />  
        <field name="latlng" type="location" indexed="true" /> 
        <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
    </fields>

    <uniqueKey>loupan_id</uniqueKey>
    <defaultSearchField>search_kw</defaultSearchField>
    <solrQueryParser defaultOperator="AND"/>
</schema>

 在提交数据时的格式为:(纬度,经度:以字符串的方式提交给solr)

<field name="store">45.17614,-93.87341</field>  <!-- Buffalo store -->
<field name="store">40.7143,-74.006</field>     <!-- NYC store -->
<field name="store">37.7752,-122.4232</field>   <!-- San Francisco store -->

例如要查寻距离纬度经度(31.254982,121.47501)5km的所有满足条件的楼盘:

 

http://192.168.181.140:8487/solr/loupan/select/?q=city_id:11&fq={!geofilt pt=31.254982,121.47501 sfield=latlng d=5}

查找满足指定距离的结果集,并按照距离由近到远排序

http://192.168.181.140:8487/solr/loupan/select/?q=*:*&fq={!geofilt}&pt=31.2367,121.501&sfield=latlng&d=5&sort=geodist()+asc

 

参考:

转载于:https://www.cnblogs.com/miao141/p/3906764.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值