gpt4 book ai didi

indexing - 从 couchdb View 可能倒排索引?

转载 作者:行者123 更新时间:2023-12-02 00:22:29 25 4
gpt4 key购买 nike

假设我有如下所示的 couchdb 文档:

{
"_id": "id",
"_rev": "rev",
"title": "foobar",
"URI": "http://www.foobar.com",
"notes": "",
"date": 1334177254774,
"tags": [
"tag1",
"tag2",
"tag3"
],
"date_modified": 1334177278457,
"deleted": false
}

我想要的是从标签创建一个倒排索引,所以我最终得到的是这样的:

{
"tag1": [
_id,
_id,
_id
],
"tag2": [
_id,
_id,
...
]
}

根据我的阅读和尝试,couchdb 可能不会让我这样做。我无法在 map 阶段完成它,而且我似乎也无法在 couch reduce 阶段完成它。这是我需要在应用程序的另一层完成的事情吗?

最佳答案

可以使用 CouchDB 的 map 功能实现这一点。

CouchDB 喜欢 列表,而不是 列表。因此,要“一刀切”解决这个问题,您需要一个以标签为键的 View ,每个文档 ID 一行。

// View rows (conceptual diagram)
// Key , Value
[ "tag1", "_id1"
, "tag1", "_id2"
, "tag1", "_id3"

, "tag2", "_id2"
, "tag2", "_id4"
, "tag3", "_id6"
]

要获取带有标签的所有文档 ID 的列表,请点击以标签名称作为键的 View ,GET/db/_design/ddoc/_view/tags?key="tag1" .

这应该足够了。但是作为 lagniappe,您可以将 "reduce" 值设置为 "_count" 以获取所有使用的标签的计数(对于构建标签云很有用)。只需记得在要查询索引时添加 &reduce=false

关于indexing - 从 couchdb View 可能倒排索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com