【问题标题】:Partial search/find in CouchDB在 CouchDB 中进行部分搜索/查找
【发布时间】:2018-03-16 20:17:28
【问题描述】:

这实际上可能是一个愚蠢的问题,但我不明白查询过程在 CouchDB 中是如何工作的。我来自 MongoDB 背景,并不能真正应用我所知道的。

假设我有一个表格的食谱数据库:

{
  "_id": "335ddc061465ec83b50b4f8d4100058d",
  "_rev": "2-b43fde3b553c08e8dd6ce19e397ec244",
  "title": "Recipe title",
  "ingredients": [
    "ingredient 1",
    "ingredient 2"
  ],
  "procedure": "What you need to do to cook the recipe",
  "pictures": [
    "picture_url_1",
    "picture_url_2"
  ],
  "videos": [
    "video_url_1",
    "video_url_2"
  ],
  "date": "some_date"
}

我想编写一个查询,例如给定一个或多个术语,它会找到一个可能的搜索结果列表(即,我可以查找类似“具有相似标题成分的食谱 ​​1”之类的内容)。理想情况下,作为第一步,我会拆分查询并在每个文档的过程、标题和成分中查找术语。我找到了this 并在条件运算符下查看,但我似乎没有在mongo 中找到类似于.find 函数的参数,如{ $text: { $search: "similar title ingredient 1" } }。我想学习 CouchDB 方法来对文档列表执行这样的逻辑 OR 查询。

我正在使用 Node.js + Express 并使用 node-couch 与数据库进行交互。至于我为什么选择 CouchDB 和我已经知道的 Mongo 相关,我只是想学习如何使用 Couch :)。谢谢大家!

【问题讨论】:

    标签: node.js express couchdb


    【解决方案1】:

    有两种方法可能适合您。

    1. couchdb-lucene。这允许您对来自 CouchDB 的数据使用 lucene。
    2. 编写一个巨大的view,它会为所有内容发出令牌并对其进行查询。

    如果安装它是您的一个选项,第一个选项可能是最好的,并且您不需要它也可以在 PouchDB 中工作。第二种更为基本,但在这两种情况下都可以使用,并且不需要任何第三方工具。

    【讨论】:

    • 我已切换回 Mongo,但如果我决定返回 CouchDB,我会牢记您的解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多