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 textspatial 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

我还在谷歌地图中可视化数据:https://www.google.com/maps/d/u/0/viewer?ll=42.00542239270033%2C-89.81213734375001&hl=en&hl=en&z=4&mid=16gaLvuWdE9TsnhcbK-BMu5DVYMzR9Vir

你需要这些query parameters

绑定框过滤器:

  • P = {!} BBOX

地理过滤器查询解析器bbox需要更多参数:

  • Solr字段:sfield = store
  • 指向搜索/排序:pt = 36.35,-97.51
  • 过滤器距离:d = 1200

分类:

  • sort = geodist()asc

全文查询:

  • Q =一些+文本

solr示例数据的完整示例查询:

简单:http://localhost:8983/solr/techproducts/select?fq={!bbox}&sort=geodist()%20asc&sfield=store&pt=36.35,-97.51&d=1200&q=ipod&fl=name,store

用户界面:http://localhost:8983/solr/techproducts/browse?fq={!bbox}&sort=geodist()%20asc&sfield=store&pt=36.35,-97.51&d=1200&q=ipod

结果如预期:

  1. Apple 60 GB
  2. 适用于iPod的Belkin电源线
  3. 按距离过滤:iPod和iPod Mini USB 2.0电缆

提示

  • 字段存储必须是类型位置:
  • 你可能Urlencode特殊字符:例如FQ =%7B%21bbox%20sfield%3DgeoLocation%7D

以上是关于Solr 7 - 如何使用地理空间搜索进行全文搜索的主要内容,如果未能解决你的问题,请参考以下文章

全文搜索服务器solr

全文搜索与空间查询

如何在 DRF 中搜索多个内容(全文、地理位置等)?

搜索引擎solr简介

利用solr实现商品的搜索功能

全文搜索引擎solr使用过程中遇到的一些问题分析