Solr 7 - 如何使用地理空间搜索进行全文搜索
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr 7 - 如何使用地理空间搜索进行全文搜索相关的知识,希望对你有一定的参考价值。
How to do Full Text combined w/ Geo Spatial in Solr 7?
关于这个:https://lucene.apache.org/solr/guide/7_2/spatial-search.html
我必须进行COMBINE全文w / geo spatial的查询。例如:
box AND full text
或spatial sort AND full text
。
我无法弄清楚产生这种期望结果的好的查询字符串示例。我希望这是一个纯粹的查询字符串,而不是一些Java方法,因为我在Java以外的其他技术上使用它。 Solr是非常深刻和令人困惑的,我知道我必须阅读更多,但我找到的网上任何地方都没有很好的例子。
所需的查询字符串示例
[solr]/select?fq={!bbox sfield=point}&pt=34.04506799999999,-118.260849&d=10000&sort=geodist() asc&{!geofilt}&sfield=point&q=Panini
因此,在这种情况下,将按距离排序,并按一些全文“某些文本”值进行过滤。
如果无法做到这一点,我相信它在弹性搜索中是可能的,但这些(Solr和弹性搜索)都是建立在Lucene之上的,所以看起来它应该适用于两者如果在一个上工作但随意为弹性提供答案搜索也是。
示例返回
{
"responseHeader": {
"status": 0,
"QTime": 2,
"params": {
"q": "Panini",
"pt": "34.04506799999999,-118.260849",
"d": "10000",
"{!geofilt}": "",
"fq": "{!bbox sfield=point}",
"sort": "geodist() asc",
"sfield": "point"
}
},
"response": {
"numFound": 0,
"start": 0,
"docs": []
}
}
文档确实包含这个短语'Panini'但没有返回。可能是由于默认方式是在Solr 7中处理全文?它使用与使用术语“Panini”相同的点,并且字段点的类型为org.apache.solr.schema.PointType。
UPDATE
我最终放弃了Solr for Elastic Search。与非常容易使用的弹性搜索相比,Solr以其奇怪的方式非常烦人。事情就像你期望的那样工作,而不必深入研究怪癖。
我根据solr 7.2.1示例调整了我的答案:
启动solr:./bin/solr start -e techproducts
你需要这些query parameters:
绑定框过滤器:
- P = {!} BBOX
地理过滤器查询解析器bbox需要更多参数:
- Solr字段:sfield = store
- 指向搜索/排序:pt = 36.35,-97.51
- 过滤器距离:d = 1200
分类:
- sort = geodist()asc
全文查询:
- Q =一些+文本
solr示例数据的完整示例查询:
结果如预期:
- Apple 60 GB
- 适用于iPod的Belkin电源线
- 按距离过滤:iPod和iPod Mini USB 2.0电缆
提示
- 字段存储必须是类型位置:
- 你可能Urlencode特殊字符:例如FQ =%7B%21bbox%20sfield%3DgeoLocation%7D
以上是关于Solr 7 - 如何使用地理空间搜索进行全文搜索的主要内容,如果未能解决你的问题,请参考以下文章