【发布时间】:2013-06-18 14:15:17
【问题描述】:
我希望就设计 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 是一个更强大的产品,可以满足我的大部分需求。我只需要一些帮助来设计一个可以有效地进行全文+加权+地理空间的索引。非常感谢任何建议!
【问题讨论】:
-
您有什么特别的问题吗?或者只是寻找有关如何实现您的要求的一般建议?
-
Moreso 概念性建议,或基于我的 JSON 示例中的数据的示例实现。
标签: mysql solr lucene indexing geospatial