Solr在结果返回函数值
2015-10-05 12:59
363 查看
如果你有一个服务,你的用户能够搜索不同的公司。用户输入一个简单的keyword,能够返回匹配keyword的公司,可是有一天,用户要求返回的公司列表中能够显示公司跟用户的距离,这是该怎么做呢?
1.如果我们在 schema.xml 中定义了例如以下索引结构:
2.我们须要定义 location 字段类型,例如以下所看到的:
3.再如果我们有下面索引数据
PS:loc是“纬度,经度”,别写反了。
4.如今能够通过下面语句查询到名称中匹配 company 的公司
5.如果我们已经获得了client位置是 50.0, 28.0,然后我们打算在公司结果列表中显示client跟这些公司的距离。
这时我们须要将下面參数载入 fl 中:
这样整个查询看起来像这样:
查询返回的内容例如以下所看到的:
1.如果我们在 schema.xml 中定义了例如以下索引结构:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/> <field name="name" type="text" indexed="true" stored="true"/> <field name="loc" type="location" indexed="true" stored="true"/> <dynamicField name="*_coordinate" type="double" indexed="true" stored="false"/>
2.我们须要定义 location 字段类型,例如以下所看到的:
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
3.再如果我们有下面索引数据
<add> <doc> <field name="id">1</field> <field name="name">Company 1</field> <field name="loc">56.4,40.2</field> </doc> <doc> <field name="id">2</field> <field name="name">Company 2</field> <field name="loc">50.1,48.9</field> </doc> <doc> <field name="id">3</field> <field name="name">Company 3</field> <field name="loc">23.18,39.1</field> </doc> </add>
PS:loc是“纬度,经度”,别写反了。
4.如今能够通过下面语句查询到名称中匹配 company 的公司
这时我们须要将下面參数载入 fl 中:
<?xmlversion="1.0"encoding="UTF-8"?> <response> <lstname="responseHeader"> <intname="status">0</int> <intname="QTime">0</int> <lstname="params"> <strname="q">name:company</str> <strname="fl">*,dist:geodist(loc,50.0,28.0)</str> </lst> </lst> <resultname="response"numFound="3"start="0"> <doc> <strname="id">1</str> <strname="name">Company 1</str> <strname="loc">56.4,40.2</str> <doublename="dist">1077.4200268973314</double> </doc> <doc> <strname="id">2</str> <strname="name">Company 2</str> <strname="loc">50.1,48.9</str> <doublename="dist">1487.4260767512278</double> </doc> <doc> <strname="id">3</str> <strname="name">Company 3</str> <strname="loc">23.18,39.1</str> <doublename="dist">3134.746384852772</double> </doc> </result> </response>上述结果 dist 是客户希望从外地。
相关文章推荐
- ubuntu 14.10 共享文件夹
- 软件测试面试汇总
- Java核心技术第4章(3)
- 编码的规范
- java多维数组遍历
- java中super,this的用法举例
- 死锁的四个必要条件和处理
- 死锁的四个必要条件和处理
- Java基础知识强化之集合框架笔记30:集合之泛型的引入
- POJ 3984 迷宫问题
- 修改maven本地资源库路径
- quicklisp 如何卸载本地项目
- Mysql5.1安装与配置(win7-x64)
- C3P0的详细配置说明
- Linux下静态库与动态库
- WriteLine(ls.ToString());Console.WriteLine(ls);输出结果相同,为什么要加 .ToString()
- zend Studio10.6.2破解注册码
- 面试复习(C++)之直接插入排序
- 2015年10月5日 12:49:07
- 美国电厂热平衡类计算Thermoflow.Pro.v19.0+PLS-CADD v12.3电力软件GateCycle 6.1.1/halcon 12