Lucene 在Apache CouchDB中启用全文搜索

Lucene 在Apache CouchDB中启用全文搜索,lucene,full-text-search,couchdb,cloudant,Lucene,Full Text Search,Couchdb,Cloudant,我已经按照这里的博客条目启用了全文搜索 我已经把所有的东西都正确地设置好了,还尝试过其他人的docker图像 如何设置搜索?需要什么文件 我用一个文档创建了一个名为cats的数据库 { "_id": "6f35d75b476517e2fc0b3eb12c000e72", "_rev": "1-c9a6b4734c83287499e8bbd6d1339050", "name": "tibbles" } 以及设计/视图 { "_id": "_design/cat_look",

我已经按照这里的博客条目启用了全文搜索

我已经把所有的东西都正确地设置好了,还尝试过其他人的docker图像

如何设置搜索?需要什么文件

我用一个文档创建了一个名为cats的数据库

{
  "_id": "6f35d75b476517e2fc0b3eb12c000e72",
  "_rev": "1-c9a6b4734c83287499e8bbd6d1339050",
  "name": "tibbles"
}
以及设计/视图

{
  "_id": "_design/cat_look",
  "_rev": "1-aae457e6edf5e4a3f69357e5a2160fcc",
  "views": {
    "kitty_name": {
     "map": "function (doc) {\n  index(\"kittyName\", doc.name, {\"store\": true});\n}"
     }
   },
  "language": "javascript"
}
如果我去“*”

我明白了

{“error”:“not_found”,“reason”:“kitty_name not found.”


感谢您在这方面的帮助,我非常迷茫。

Lucene搜索索引的设置方式与Map Reduce视图的设置方式不同。在代码中,您似乎尝试使用Map Reduce视图。对于Lucene,首先需要设置索引:

{
    "_id": "_design/Cat_look",
    "indexes": {
        "kitty_name": {
            "index": "function(doc){ ... }"
        }
    }
}

请查阅Cloudant的文档:

谢谢您的帮助,您是对的,我没有正确设置Lucene搜索索引。下面的代码是一个简单的例子,可以帮助其他人

如果你有docker设置

docker run -d -p 15984:15984 ncheaz/couchdb:search
在本地端口15984上获取couchdb搜索

要搜索的文档

{
  "_id": "6f35d75b476517e2fc0b3eb12c000e72",
  "_rev": "1-c9a6b4734c83287499e8bbd6d1339050",
  "name": "tibbles"
}
搜索索引。 创建新文档,而不是新视图

{
  "_id": "_design/cat_look",
  "_rev": "2-23f6ab0606a603cbef04653d167585d4",
  "views": {},
  "language": "javascript",
  "indexes": {
    "kitty_name": {
      "analyzer": "simple",
      "index": "function (doc) {if (doc.name) {index(\"name\", doc.name, {\"store\":true});  }}"
    }
  }
}
搜索猫名的url为

*

请注意,kitty_name是搜索的名称,
name
是索引名称


我建议任何努力实现这一目标的人在IBM Cloudant上创建一个免费试用帐户,因为文档直接与他们的产品相关,而且更容易理解。

很高兴我能提供帮助。请随意接受答案:)谢谢。