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

就像库奇达的情况一样

  •  5
  • Warrior  · 技术社区  · 16 年前

    我想在CouchDB中执行一个类似的条件(SQL语法)。如何做到这一点?类似条件将用于在浏览器中执行自动完成。

    我想在输入字段中写“co”,然后得到结果Coffee,Couch,CouchDB等等。

    3 回复  |  直到 16 年前
        1
  •  9
  •   Christian Berg    16 年前

    搜索字符串开头的字母非常容易。您只需要一个视图,该视图将要搜索的字符串作为键。假设用户输入存储在变量中 q startkey=q 和 endkey=q+"\ufff0" .

    问

    如果您还希望能够在字符串中间找到单词(例如键入“co”时的“the Colbert Report”),可以使用如下视图:

    function(doc) {
      if (doc.title) {
        var words = {};
        doc.title.replace(/\w+/g, function(word) {
          words[word.toLowerCase()] = true;
        });
        for (w in words) {
          emit(w, doc);
        }
      }
    }
    

    couchdb-lucene

        2
  •  0
  •   Tomas    16 年前
        3
  •  0
  •   titanoboa    16 年前

    为了实现您的示例,您可以创建一个视图,该视图将您的字段作为键,并将同一字段、整个文档或任何您想要的内容作为值。如果使用参数查询视图 startkey="co", endkey="cp", inclusive_end=false