假设我有两个名为"twitter_user"和"twitter_comments"的表.
twitter_users有字段:username和bio twitter_comments有字段:username和comment
显然,用户在twitter_users中有1个条目,在twitter_comments中可能有很多
我想在弹性搜索中对twitter_users和twitter_comments建模,在我查询时让ES搜索两个模型,知道评论对于twitter用户的整体相关性得分.
我知道我可以通过创建一个额外的字段(除了username和bio)和所有连接的注释来模仿这个模型.但是还有另一种"更清洁"的方式吗?
这取决于.
如果您只想搜索用户注释,全文和所有字段,只需将所有注释存储在用户对象中(无需连接任何内容):
{
"user" : {
"username" : "TestUser",
"bio" : "whatever",
"comments" : [
{
"title" : "First comment",
"text" : "My 1st comment"
},
{
"title" : "Second comment",
"text" : "My 2nd comment"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
如果您需要基于每个注释的查询,则需要将注释映射为嵌套(在提交任何数据之前),以便将每个注释视为单个项目.
对于你的得分,只需添加另一个字段"comment_count"并将其用于你的助推/得分.
| 归档时间: |
|
| 查看次数: |
2244 次 |
| 最近记录: |