配置schema.xml
1
<?
xml version="1.0" encoding="UTF-8"
?>
2 < schema name ="aifang-loupan" version ="1.1" >
3 < types >
4 < fieldType name ="string" class ="solr.StrField" sortMissingLast ="true" omitNorms ="true" />
5 < fieldType name ="boolean" class ="solr.BoolField" sortMissingLast ="true" omitNorms ="true" />
6 < fieldType name ="integer" class ="solr.IntField" omitNorms ="true" />
7
8 < fieldType name ="int" class ="solr.TrieIntField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
9 < fieldType name ="float" class ="solr.TrieFloatField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
10 < fieldType name ="long" class ="solr.TrieLongField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
11 < fieldType name ="double" class ="solr.TrieDoubleField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
12
13 < fieldType name ="tint" class ="solr.TrieIntField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
14 < fieldType name ="tfloat" class ="solr.TrieFloatField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
15 < fieldType name ="tlong" class ="solr.TrieLongField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
16 < fieldType name ="tdouble" class ="solr.TrieDoubleField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
17
18 < fieldType name ="sint" class ="solr.SortableIntField" sortMissingLast ="true" omitNorms ="true" />
19 < fieldType name ="slong" class ="solr.SortableLongField" sortMissingLast ="true" omitNorms ="true" />
20 < fieldType name ="sfloat" class ="solr.SortableFloatField" sortMissingLast ="true" omitNorms ="true" />
21 < fieldType name ="sdouble" class ="solr.SortableDoubleField" sortMissingLast ="true" omitNorms ="true" />
22
23 < fieldType name ="date" class ="solr.TrieDateField" omitNorms ="true" precisionStep ="0" positionIncrementGap ="0" />
24 < fieldType name ="tdate" class ="solr.TrieDateField" omitNorms ="true" precisionStep ="6" positionIncrementGap ="0" />
25 < fieldtype name ="ignored" stored ="false" indexed ="false" class ="solr.StrField" />
26 <fieldtype name="location" class="solr.LatLonType" subFieldSuffix="_d"/>
27 < fieldType name ="text" class ="solr.TextField" positionIncrementGap ="100" >
28 < analyzer type ="index" >
29 < tokenizer class ="solr.StandardTokenizerFactory" />
30 < filter class ="solr.StopFilterFactory" ignoreCase ="true" words ="stopwords.txt" enablePositionIncrements ="true" />
31 < filter class ="solr.LowerCaseFilterFactory" />
32 </ analyzer >
33 < analyzer type ="query" >
34 < tokenizer class ="solr.StandardTokenizerFactory" />
35 < filter class ="solr.StopFilterFactory" ignoreCase ="true" words ="stopwords.txt" enablePositionIncrements ="true" />
36 < filter class ="solr.SynonymFilterFactory" synonyms ="synonyms.txt" ignoreCase ="true" expand ="true" />
37 < filter class ="solr.LowerCaseFilterFactory" />
38 </ analyzer >
39 </ fieldType >
40
41 </ types >
42
43 < fields >
44 < field name ="loupan_id" type ="integer" indexed ="true" stored ="true" required ="true" />
45 < field name ="city_id" type ="integer" indexed ="true" stored ="false" />
46 < field name ="loupan_name" type ="text" indexed ="true" stored ="false" />
47 < field name ="loupan_pinyin" type ="string" indexed ="true" stored ="false" />
48 < field name ="alias_name" type ="text" indexed ="true" stored ="false" />
49 < field name ="former_name" type ="text" indexed ="true" stored ="false" />
50 < field name ="region_title" type ="text" indexed ="true" stored ="false" />
51 < field name ="region_id" type ="int" indexed ="true" stored ="false" />
52 < field name ="sub_region_title" type ="text" indexed ="true" stored ="false" />
53 < field name ="sub_region_id" type ="int" indexed ="true" stored ="false" />
54 < field name ="regions_string" type ="string" indexed ="true" stored ="false" multiValued ="true" />
55 < field name ="address" type ="text" indexed ="true" stored ="false" />
56 < field name ="proxy_address" type ="text" indexed ="true" stored ="false" />
57 < field name ="chanquan" type ="text" indexed ="true" stored ="false" />
58 < field name ="build_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
59 < field name ="property_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
60 < field name ="fitment_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
61 < field name ="search_kw" type ="text" indexed ="true" multiValued ="true" stored ="false" />
62 < field name ="investor" type ="text" indexed ="true" stored ="false" />
63 < field name ="company" type ="text" indexed ="true" stored ="false" />
64 < field name ="loop_line" type ="text" indexed ="true" stored ="false" />
65 < field name ="status_sale" type ="integer" indexed ="true" stored ="false" />
66 < field name ="status_disp" type ="integer" indexed ="true" stored ="false" />
67 < field name ="search_sale" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
68 < field name ="jiaofang_date" type ="sint" indexed ="true" stored ="false" />
69 < field name ="kaipan_date" type ="sint" indexed ="true" stored ="false" />
70 < field name ="price" type ="sint" index ="true" stored ="false" />
71 < field name ="baidu_lat" type ="sfloat" indexed ="true" stored ="false" />
72 < field name ="baidu_lng" type ="sfloat" indexed ="true" stored ="false" />
73 < field name ="lat" type ="sfloat" indexed ="true" stored ="false" />
74 < field name ="lng" type ="sfloat" indexed ="true" stored ="false" />
75 < field name ="metro_subway_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
76 < field name ="metro_station_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
77 < field name ="metro_enabled" type ="integer" indexed ="true" stored ="false" />
78 < field name ="metro_info" type ="text" indexed ="true" stored ="false" multiValued ="true" />
79 < field name ="loop_line_id" type ="integer" indexed ="true" stored ="false" />
80 < field name ="property_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
81 < field name ="build_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
82 < field name ="fitment_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
83 < field name ="developer_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
84 < field name ="developer_title" type ="string" indexed ="true" stored ="false" />
85 < field name ="business_id" type ="integer" indexed ="true" stored ="false" />
86 < field name ="business_title" type ="string" indexed ="true" stored ="false" />
87 < field name ="loupan_extend_type" type ="sint" indexed ="true" stored ="false" multiValued ="true" />
88 < field name ="trip_fitment_style" type ="text" indexed ="true" stored ="false" />
89 < field name ="trip_feature_recommend" type ="text" indexed ="true" stored ="false" multiValued ="true" />
90 < field name ="trip_spot" type ="text" indexed ="true" stored ="false" multiValued ="true" />
91 < field name ="trip_transport" type ="text" indexed ="true" stored ="false" multiValued ="true" />
92 < field name ="trip_scenic_region" type ="text" indexed ="true" stored ="false" multiValued ="true" />
93 < field name ="trip_property_service" type ="text" indexed ="true" stored ="false" multiValued ="true" />
94 < field name ="trip_scenic_spot" type ="text" indexed ="true" stored ="false" />
95 < field name ="trip_created" type ="sint" indexed ="true" stored ="false" />
96 < field name ="is_trip" type ="int" indexed ="true" stored ="false" />
97 < field name ="level" type ="sint" indexed ="true" stored ="false" />
98 < field name ="loupan_pv_day" type ="sint" indexed ="true" stored ="false" />
99 < field name ="operator_ids" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
100 < field name ="operator_names" type ="string" indexed ="true" stored ="false" multiValued ="true" />
101 < dynamicField name ="*_grade" type ="sint" indexed ="true" stored ="false" />
102 < field name ="updated" type ="sint" indexed ="true" stored ="false" />
103 < field name ="news_id" type ="int" indexed ="true" stored ="false" />
104 < field name ="news_update" type ="sint" indexed ="true" stored ="false" />
105 < field name ="rank" type ="sfloat" indexed ="true" stored ="false" />
106 < field name ="sale_order" type ="sint" indexed ="true" stored ="false" />
107 < field name ="vip_order" type ="string" indexed ="true" stored ="false" />
108 < field name ="kaipan_order" type ="sint" indexed ="true" stored ="false" />
109 < field name ="created" type ="sint" indexed ="true" stored ="false" />
110 <field name="latlng" type="location" indexed="true" />
111 <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
112 </ fields >
113
114 < uniqueKey >loupan_id </ uniqueKey >
115 < defaultSearchField >search_kw </ defaultSearchField >
116 < solrQueryParser defaultOperator ="AND" />
117 </ schema >
2 < schema name ="aifang-loupan" version ="1.1" >
3 < types >
4 < fieldType name ="string" class ="solr.StrField" sortMissingLast ="true" omitNorms ="true" />
5 < fieldType name ="boolean" class ="solr.BoolField" sortMissingLast ="true" omitNorms ="true" />
6 < fieldType name ="integer" class ="solr.IntField" omitNorms ="true" />
7
8 < fieldType name ="int" class ="solr.TrieIntField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
9 < fieldType name ="float" class ="solr.TrieFloatField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
10 < fieldType name ="long" class ="solr.TrieLongField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
11 < fieldType name ="double" class ="solr.TrieDoubleField" precisionStep ="0" omitNorms ="true" positionIncrementGap ="0" />
12
13 < fieldType name ="tint" class ="solr.TrieIntField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
14 < fieldType name ="tfloat" class ="solr.TrieFloatField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
15 < fieldType name ="tlong" class ="solr.TrieLongField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
16 < fieldType name ="tdouble" class ="solr.TrieDoubleField" precisionStep ="8" omitNorms ="true" positionIncrementGap ="0" />
17
18 < fieldType name ="sint" class ="solr.SortableIntField" sortMissingLast ="true" omitNorms ="true" />
19 < fieldType name ="slong" class ="solr.SortableLongField" sortMissingLast ="true" omitNorms ="true" />
20 < fieldType name ="sfloat" class ="solr.SortableFloatField" sortMissingLast ="true" omitNorms ="true" />
21 < fieldType name ="sdouble" class ="solr.SortableDoubleField" sortMissingLast ="true" omitNorms ="true" />
22
23 < fieldType name ="date" class ="solr.TrieDateField" omitNorms ="true" precisionStep ="0" positionIncrementGap ="0" />
24 < fieldType name ="tdate" class ="solr.TrieDateField" omitNorms ="true" precisionStep ="6" positionIncrementGap ="0" />
25 < fieldtype name ="ignored" stored ="false" indexed ="false" class ="solr.StrField" />
26 <fieldtype name="location" class="solr.LatLonType" subFieldSuffix="_d"/>
27 < fieldType name ="text" class ="solr.TextField" positionIncrementGap ="100" >
28 < analyzer type ="index" >
29 < tokenizer class ="solr.StandardTokenizerFactory" />
30 < filter class ="solr.StopFilterFactory" ignoreCase ="true" words ="stopwords.txt" enablePositionIncrements ="true" />
31 < filter class ="solr.LowerCaseFilterFactory" />
32 </ analyzer >
33 < analyzer type ="query" >
34 < tokenizer class ="solr.StandardTokenizerFactory" />
35 < filter class ="solr.StopFilterFactory" ignoreCase ="true" words ="stopwords.txt" enablePositionIncrements ="true" />
36 < filter class ="solr.SynonymFilterFactory" synonyms ="synonyms.txt" ignoreCase ="true" expand ="true" />
37 < filter class ="solr.LowerCaseFilterFactory" />
38 </ analyzer >
39 </ fieldType >
40
41 </ types >
42
43 < fields >
44 < field name ="loupan_id" type ="integer" indexed ="true" stored ="true" required ="true" />
45 < field name ="city_id" type ="integer" indexed ="true" stored ="false" />
46 < field name ="loupan_name" type ="text" indexed ="true" stored ="false" />
47 < field name ="loupan_pinyin" type ="string" indexed ="true" stored ="false" />
48 < field name ="alias_name" type ="text" indexed ="true" stored ="false" />
49 < field name ="former_name" type ="text" indexed ="true" stored ="false" />
50 < field name ="region_title" type ="text" indexed ="true" stored ="false" />
51 < field name ="region_id" type ="int" indexed ="true" stored ="false" />
52 < field name ="sub_region_title" type ="text" indexed ="true" stored ="false" />
53 < field name ="sub_region_id" type ="int" indexed ="true" stored ="false" />
54 < field name ="regions_string" type ="string" indexed ="true" stored ="false" multiValued ="true" />
55 < field name ="address" type ="text" indexed ="true" stored ="false" />
56 < field name ="proxy_address" type ="text" indexed ="true" stored ="false" />
57 < field name ="chanquan" type ="text" indexed ="true" stored ="false" />
58 < field name ="build_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
59 < field name ="property_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
60 < field name ="fitment_type" type ="text" indexed ="true" stored ="false" multiValued ="true" />
61 < field name ="search_kw" type ="text" indexed ="true" multiValued ="true" stored ="false" />
62 < field name ="investor" type ="text" indexed ="true" stored ="false" />
63 < field name ="company" type ="text" indexed ="true" stored ="false" />
64 < field name ="loop_line" type ="text" indexed ="true" stored ="false" />
65 < field name ="status_sale" type ="integer" indexed ="true" stored ="false" />
66 < field name ="status_disp" type ="integer" indexed ="true" stored ="false" />
67 < field name ="search_sale" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
68 < field name ="jiaofang_date" type ="sint" indexed ="true" stored ="false" />
69 < field name ="kaipan_date" type ="sint" indexed ="true" stored ="false" />
70 < field name ="price" type ="sint" index ="true" stored ="false" />
71 < field name ="baidu_lat" type ="sfloat" indexed ="true" stored ="false" />
72 < field name ="baidu_lng" type ="sfloat" indexed ="true" stored ="false" />
73 < field name ="lat" type ="sfloat" indexed ="true" stored ="false" />
74 < field name ="lng" type ="sfloat" indexed ="true" stored ="false" />
75 < field name ="metro_subway_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
76 < field name ="metro_station_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
77 < field name ="metro_enabled" type ="integer" indexed ="true" stored ="false" />
78 < field name ="metro_info" type ="text" indexed ="true" stored ="false" multiValued ="true" />
79 < field name ="loop_line_id" type ="integer" indexed ="true" stored ="false" />
80 < field name ="property_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
81 < field name ="build_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
82 < field name ="fitment_type_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
83 < field name ="developer_id" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
84 < field name ="developer_title" type ="string" indexed ="true" stored ="false" />
85 < field name ="business_id" type ="integer" indexed ="true" stored ="false" />
86 < field name ="business_title" type ="string" indexed ="true" stored ="false" />
87 < field name ="loupan_extend_type" type ="sint" indexed ="true" stored ="false" multiValued ="true" />
88 < field name ="trip_fitment_style" type ="text" indexed ="true" stored ="false" />
89 < field name ="trip_feature_recommend" type ="text" indexed ="true" stored ="false" multiValued ="true" />
90 < field name ="trip_spot" type ="text" indexed ="true" stored ="false" multiValued ="true" />
91 < field name ="trip_transport" type ="text" indexed ="true" stored ="false" multiValued ="true" />
92 < field name ="trip_scenic_region" type ="text" indexed ="true" stored ="false" multiValued ="true" />
93 < field name ="trip_property_service" type ="text" indexed ="true" stored ="false" multiValued ="true" />
94 < field name ="trip_scenic_spot" type ="text" indexed ="true" stored ="false" />
95 < field name ="trip_created" type ="sint" indexed ="true" stored ="false" />
96 < field name ="is_trip" type ="int" indexed ="true" stored ="false" />
97 < field name ="level" type ="sint" indexed ="true" stored ="false" />
98 < field name ="loupan_pv_day" type ="sint" indexed ="true" stored ="false" />
99 < field name ="operator_ids" type ="integer" indexed ="true" stored ="false" multiValued ="true" />
100 < field name ="operator_names" type ="string" indexed ="true" stored ="false" multiValued ="true" />
101 < dynamicField name ="*_grade" type ="sint" indexed ="true" stored ="false" />
102 < field name ="updated" type ="sint" indexed ="true" stored ="false" />
103 < field name ="news_id" type ="int" indexed ="true" stored ="false" />
104 < field name ="news_update" type ="sint" indexed ="true" stored ="false" />
105 < field name ="rank" type ="sfloat" indexed ="true" stored ="false" />
106 < field name ="sale_order" type ="sint" indexed ="true" stored ="false" />
107 < field name ="vip_order" type ="string" indexed ="true" stored ="false" />
108 < field name ="kaipan_order" type ="sint" indexed ="true" stored ="false" />
109 < field name ="created" type ="sint" indexed ="true" stored ="false" />
110 <field name="latlng" type="location" indexed="true" />
111 <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
112 </ fields >
113
114 < uniqueKey >loupan_id </ uniqueKey >
115 < defaultSearchField >search_kw </ defaultSearchField >
116 < solrQueryParser defaultOperator ="AND" />
117 </ 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
参考: