gpt4 book ai didi

mysql - Solr中一对多地理空间搜索索引设计

转载 作者:行者123 更新时间:2023-11-29 03:04:58 24 4
gpt4 key购买 nike

我希望得到一些关于设计 Solr 索引的最佳方法的建议,其中每个文档都有多个标签以及多个 lat/lng 对。

示例文档的 JSON 表示:

Document {
id: 123,
name: "Sample Doc",
tags: [
{tag:"example1", weight:0.5},
{tag:"example2", weight:1.0},
{tag:"example3", weight:1.5}
],
locations: [
{lat:1.234, lng:5.678},
{lat:9.876, lng:5.432}
]
}

标签需要在索引时分配不同的权重(权重不会在查询之间改变)。针对索引的搜索包括针对距离 lat/lng 对特定距离内的所有文档的名称和标签的文本搜索。例如,在 9.876/5.432 的 5000 米范围内搜索:“Sample example3”。

在这样的搜索中,具有更多标签匹配和与标题匹配的文档应该排名更高(不确定 Solr 是否默认这样做),同时仍然考虑标签权重(这使得某个标签可能导致文档由于其权重,在搜索中排名非常高)。

我过去曾使用 Solr 执行全文搜索,并且试用过它的地理空间功能。我来自 Sphinx 背景,但我认为 Solr 是满足我大部分需求的更强大的产品。我只需要一些帮助来设计一个可以有效地执行全文 + 加权 + 地理空间的索引。非常感谢任何建议!

最佳答案

地理空间多值数据可通过 Solr 开箱即用模式中的 location_rpt 轻松处理。

这里比较棘手的部分是加权标签。作为第一次削减,我将索引 3 个字段,tags05 tags10 tags15,每个字段都有 3 个单独的查询时间提升(通过 edismax 的 qf 参数)分别为 0.5、1.0 和 1.5。这是一种离散化方法,在这种方法中,您会根据拥有的桶数(此处显示 3 个)失去一些权重保真度。如果可以,请避免 Solr 4 JOIN 查询;他们通常很慢。由于数据被拆分,IDF 分数会有点差,因此您可能想为这些不考虑 IDF 的字段尝试不同的相似性实现。

关于mysql - Solr中一对多地理空间搜索索引设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17171235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com