我希望就设计 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 是一个更强大的产品,可以满足我的大部分需求。我只需要一些帮助来设计一个可以有效地进行全文+加权+地理空间的索引。任何意见是极大的赞赏!