>我需要一些关于couchdb全文搜索的指导。它是在 2.0 中默认启用的,还是我们必须重建 couchdb 启用它?
场景: 它是一个文档管理系统,文档显示在网格中。我需要能够对结果进行排序。在从 map Reduce 到弹性索引的几次更改之后,现在我正在尝试使用 mango 查询。问题是排序没有给出预期的结果。
{
"selector": {
"directoryName": {
"$eq": "mail\test\inbox"
}},
"sort": [{"subject": "asc"}]
}
尝试按"主题"或其他文本字段排序,我想将结果与"索引逻辑"混合在一起(例如:返回排序的主题:"此电子邮件...","您好...","此电子邮件...",绝对不是我需要的)。不记得分析器、令牌等是否与"奇怪"的搜索结果有关。例如,使用日期字段 desc 排序,它的效果要好得多,但是当显示 2014 年到 desc 的文档时,我有一个 2014 年文档的"入侵者"结果,其中包含 2016 年和 2015 年的文档。
我已经为一些可能的文档排序字段创建了 json 类型的索引。创建文本类型索引不起作用。我不知道全文搜索会解决我的"排序"问题,但是通过对cloudant查询语言和全文搜索的所有引用,我认为此功能包含在2.0中。
CouchDB 本身没有内置的全文索引器。你可以用芒果做很多事情,但有一个专门的全文索引器可能会更好地为你服务。
2 种最常见的选项是:couchdb-lucene 和松紧每个
搜索了一段时间后失败了,最后,我得到了一些工作系统,请告诉我任何评论 如果有人想要全文搜索,也许你可以试试,(删除所有评论并复制然后粘贴)
function (doc) {
var prefix;
for(prop in doc){
if(prop=="_id"||prop=="_rev") // ignore _id, _rev or any unwanted properties
continue;
if(!Date.parse(doc[prop])) //ignore if it's a date type
prefix += doc[prop];
else if(!isNAN(doc[prop])) // accept if it's a number type
prefix += doc[prop];
else if(typeof(doc[prop]!=="boolean") //ignore if it's a boolean type
prefix += doc[prop];
}
var i;
if (prefix) {
for (i = 0; i < prefix.length; i += 1) {
emit([prefix.slice(i)], doc);
}
}
//searchText?startkey=["abc"]&endkey=["abcu9999"]&reduce=false&skip=0&limit=3