Lucene 在Cloudant上为每个用户搜索一个文档
我有一个包含多个文档的数据库。每个单据都有一个用户id字段。 假设这些文档属于两个用户:1和2。 我只想为每个用户提取一份最新的文档。我应该如何实现搜索索引? 我现在可以使用:user\u id:1获取用户的所有文档Lucene 在Cloudant上为每个用户搜索一个文档,lucene,cloudant,Lucene,Cloudant,我有一个包含多个文档的数据库。每个单据都有一个用户id字段。 假设这些文档属于两个用户:1和2。 我只想为每个用户提取一份最新的文档。我应该如何实现搜索索引? 我现在可以使用:user\u id:1获取用户的所有文档 但是如何在一次查询中将每个用户的文档编号限制为一个呢?假设每个文档都有日期属性,则可以按如下方式完成此操作: 创建以下索引: { "index": { "fields": [ {"user_id":"desc"}, {"date
但是如何在一次查询中将每个用户的文档编号限制为一个呢?假设每个文档都有日期属性,则可以按如下方式完成此操作: 创建以下索引:
{
"index": {
"fields": [
{"user_id":"desc"},
{"date_field":"desc"}
]
},
"type": "json"
}
要查询用户id
==“1”的最新文档,您的查询如下所示:
{
"selector": {
"user_id": "1"
},
"fields": [
"_id",
"user_id",
"date_field"
],
"sort": [
{ "user_id": "desc" },
{ "date_field": "desc" }
],
"limit":1
}
如果试图在一个查询中返回多个用户,则必须执行以下操作:
{
"selector": {
"user_id": "1"
},
"fields": [
"_id",
"user_id",
"date_field"
],
"sort": [
{ "user_id": "desc" },
{ "date_field": "desc" }
],
"limit":1
}
latest
或类似的属性user\u id
和latest
上添加索引:
{
"index": {
"fields": [
"user_id",
"latest"
]
},
"type": "json"
}
用户id
的文档,其中最新
为真:
{
"selector": {
"user_id": "1",
"latest" : true
},
"fields": [
"_id",
"user_id",
"latest"
]
}
latest
=false最新的=true的新文档
{
"selector": {
"user_id": {"$gt":null},
"latest" : true
},
"fields": [
"_id",
"user_id",
"latest"
]
}