Cloudant nest 搜索和查看
Cloudant nest search and view
由于对 nosql 数据库不是很熟悉,我目前想知道以下问题:
我有一个 lucene 搜索索引,它搜索整个数据库并且:
function (doc) {
index("default", doc.name);
index("name", doc.name, {"store": true, "index": false});
if (doc.description) {
index("default", doc.description);
index("description", doc.description, {"store": true, "index": false});
}
if (doc.steps) {
for (var i = 0; i < doc.steps.length; i++){
index("default", doc.steps[i].description);
}
}
}
它应该与用户稍后提供的查询一起使用。现在我不得不以某种方式处理对某些文件的限制。是否可以做这样的事情(sqlish):
SELECT id, name, description FROM Table WHERE id IN (<Lucene search>) AND <restriction>;
在搜索结果之上创建视图。
这可能吗,还是有更有效的选择?
无法创建 "view on top of search results",但肯定可以使用
来回答您的 SQL(ish) 查询
- 一个Lucene索引(只要你需要的字段被索引)
- 一个 MapReduce 视图
在不太了解您的意思的情况下,我会将其作为您现有 Lucene 搜索的扩展来处理。
您针对 Lucene 索引指定的查询可能非常复杂 - 您可以在其中包含逻辑和括号,就像 SQL WHERE 子句,例如
q=name:"Bob Smith" AND description:"database expert" AND ( owner:"glynn" OR group_owner:"staff" OR world_owner:"everyone")
在上面的示例中,我 return 文档匹配查询,但仅当满足三个 "restriction" 参数之一时 - 以 Unix 的三层文件所有权为模型(您可以选择另一个访问控制方案)。
由于对 nosql 数据库不是很熟悉,我目前想知道以下问题: 我有一个 lucene 搜索索引,它搜索整个数据库并且:
function (doc) {
index("default", doc.name);
index("name", doc.name, {"store": true, "index": false});
if (doc.description) {
index("default", doc.description);
index("description", doc.description, {"store": true, "index": false});
}
if (doc.steps) {
for (var i = 0; i < doc.steps.length; i++){
index("default", doc.steps[i].description);
}
}
}
它应该与用户稍后提供的查询一起使用。现在我不得不以某种方式处理对某些文件的限制。是否可以做这样的事情(sqlish):
SELECT id, name, description FROM Table WHERE id IN (<Lucene search>) AND <restriction>;
在搜索结果之上创建视图。 这可能吗,还是有更有效的选择?
无法创建 "view on top of search results",但肯定可以使用
来回答您的 SQL(ish) 查询- 一个Lucene索引(只要你需要的字段被索引)
- 一个 MapReduce 视图
在不太了解您的意思的情况下,我会将其作为您现有 Lucene 搜索的扩展来处理。
您针对 Lucene 索引指定的查询可能非常复杂 - 您可以在其中包含逻辑和括号,就像 SQL WHERE 子句,例如
q=name:"Bob Smith" AND description:"database expert" AND ( owner:"glynn" OR group_owner:"staff" OR world_owner:"everyone")
在上面的示例中,我 return 文档匹配查询,但仅当满足三个 "restriction" 参数之一时 - 以 Unix 的三层文件所有权为模型(您可以选择另一个访问控制方案)。