如果搜索不允许指定属性,那么对Solr文档建模是否有意义?

时间:2018-06-11 13:59:32

标签: solr

我想在我的网站中提供搜索功能,用户只能通过文字进行搜索,而无需指定属性。

例如,不要让用户通过" author = George Martin"他只会查询乔治·马丁"。

我想知道像这样的文档模型是否有任何优势:

{
  "id": 1,
  "title": "Game of Thrones",
  "author": "George R. R. Martin",
  "published": "August, 1996"
}

与:相比:

{
  "id": 1,
  "data": [
    "Game of Thrones",
    "George R. R. Martin",
    "August, 1996"
  ]
}

如果我不打算使用"作者:价值"在Solr API中,我应该得到相同的结果,对吧?

1 个答案:

答案 0 :(得分:1)

第一个版本允许您为不同的字段分配不同的权重。即标题中的命中可能比作者字段中的命中更重要 - 反之亦然。

使用edismax处理程序(defType=edismax)和查询字段(qf=title author published)将为您提供与第二个示例相同的行为,但将保留文档的结构。

当字段放入qf参数时,用户无需明确告诉Solr她想要搜索哪些字段。

要为字段指定不同的权重,请为qf列表中的字段指定权重:qf=title^5 author^2 published将在权重的五倍中创建权重,而不是published中的匹配 - 即#"寻找红色十月"比10月发表的文章更重要。