在 Apache CouchDB 中启用全文搜索
Enable Full Text Search in Apache CouchDB
我已按照此处的博客条目启用全文搜索https://developer.ibm.com/dwblog/2015/text-search-apache-couchdb/#.Vly24SCrQbV
我已经正确设置了所有内容,并且还尝试了其他人的 docker 图片。
如何设置搜索?需要什么文件。
我用一个文档创建了一个名为 cats 的数据库
{
"_id": "6f35d75b476517e2fc0b3eb12c000e72",
"_rev": "1-c9a6b4734c83287499e8bbd6d1339050",
"name": "tibbles"
}
还有一个design/view
{
"_id": "_design/cat_look",
"_rev": "1-aae457e6edf5e4a3f69357e5a2160fcc",
"views": {
"kitty_name": {
"map": "function (doc) {\n index(\"kittyName\", doc.name, {\"store\": true});\n}"
}
},
"language": "javascript"
}
如果我去 http://localhost:15984/cats/_design/cat_look/_search/kitty_name?q="*"
我明白了
{"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 关于该主题的文档:https://console.bluemix.net/docs/services/Cloudant/api/search.html#search
谢谢你的帮助,你是对的我设置了错误的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是
http://localhost:15984/cats/_design/cat_look/_search/kitty_name?q=name:tibbl*
请注意,kitty_name 是 _search 的名称,name
是索引名称。
我建议任何努力让它工作的人在 IBM Cloudant 上创建一个免费试用帐户,因为文档直接与其产品相关,而且更容易理解。
我已按照此处的博客条目启用全文搜索https://developer.ibm.com/dwblog/2015/text-search-apache-couchdb/#.Vly24SCrQbV
我已经正确设置了所有内容,并且还尝试了其他人的 docker 图片。
如何设置搜索?需要什么文件。
我用一个文档创建了一个名为 cats 的数据库
{
"_id": "6f35d75b476517e2fc0b3eb12c000e72",
"_rev": "1-c9a6b4734c83287499e8bbd6d1339050",
"name": "tibbles"
}
还有一个design/view
{
"_id": "_design/cat_look",
"_rev": "1-aae457e6edf5e4a3f69357e5a2160fcc",
"views": {
"kitty_name": {
"map": "function (doc) {\n index(\"kittyName\", doc.name, {\"store\": true});\n}"
}
},
"language": "javascript"
}
如果我去 http://localhost:15984/cats/_design/cat_look/_search/kitty_name?q="*"
我明白了
{"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 关于该主题的文档:https://console.bluemix.net/docs/services/Cloudant/api/search.html#search
谢谢你的帮助,你是对的我设置了错误的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是
http://localhost:15984/cats/_design/cat_look/_search/kitty_name?q=name:tibbl*
请注意,kitty_name 是 _search 的名称,name
是索引名称。
我建议任何努力让它工作的人在 IBM Cloudant 上创建一个免费试用帐户,因为文档直接与其产品相关,而且更容易理解。