代码之家  ›  专栏  ›  技术社区  ›  Masiar

CouchDB中的部分搜索/查找

  •  1
  • Masiar  · 技术社区  · 7 年前

    这实际上可能是一个愚蠢的问题,但我不理解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 在条件运算符下查找,但我似乎没有找到与 .find mongo中的函数,参数如下 { $text: { $search: "similar title ingredient 1" } } 。我想学习CouchDB对文档列表执行这种逻辑OR查询的方法。

    我正在使用Node。js+Express并使用节点沙发与DB交互。至于我为什么选择CouchDB来处理Mongo,我已经知道了,我只是想学习如何使用沙发:)。谢谢大家!

    1 回复  |  直到 7 年前
        1
  •  2
  •   SCdF    7 年前

    有两种方法可能适合您。

    1. 看看 couchdb-lucene 。这允许您对来自CouchDB的数据使用lucene。
    2. 写一个巨人 view 它为所有内容发出标记并对此进行查询。

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

    推荐文章