Search Cloudant搜索:使用count方面的条件是什么?
我正在尝试使用Cloudant建立搜索索引,但我发现非常混乱。它说: 刻面 为了使用facet,索引中的所有文档必须包括启用facet的所有字段。如果您的文档不包含所有字段,您将收到一个错误的\u请求错误,原因如下:“dim field\u name不存在” 如果每个文档不包含facet的所有字段,建议为每个字段创建单独的索引。如果不为每个字段创建单独的索引,则必须仅包含包含所有字段的文档。使用单个if语句验证每个文档中是否存在字段 计数 count facet语法获取字段列表,并返回每个命名字段的每个唯一值的查询结果数 仅当索引值为字符串时,计数操作才起作用。索引值不能是混合类型。例如,如果索引了100个字符串和一个数字,则该索引不能用于计数操作。您可以使用typeof运算符检查类型,并使用parseInt、parseFloat和.toString()函数进行转换 具体来说,当“索引中的所有文档都包含启用了镶嵌面的所有字段”时,这意味着什么 例如,如果我的数据库由以下文档组成:Search Cloudant搜索:使用count方面的条件是什么?,search,cloudant,faceted-search,Search,Cloudant,Faceted Search,我正在尝试使用Cloudant建立搜索索引,但我发现非常混乱。它说: 刻面 为了使用facet,索引中的所有文档必须包括启用facet的所有字段。如果您的文档不包含所有字段,您将收到一个错误的\u请求错误,原因如下:“dim field\u name不存在” 如果每个文档不包含facet的所有字段,建议为每个字段创建单独的索引。如果不为每个字段创建单独的索引,则必须仅包含包含所有字段的文档。使用单个if语句验证每个文档中是否存在字段 计数 count facet语法获取字段列表,并返回每个命名字
{
"_id": "mydoc"
"subjects": [ "subject A", "subject B" ]
}
我写了一个搜索索引,如下所示:
function (doc) {
for(var i=0; i < doc.subjects.length; i++)
index("hasSubject", doc.subjects[i], {facet: true});
}
function (doc) {
if (doc.subjects) {
for(var i=0; i < doc.subjects.length; i++) {
if (typeof doc.subjects[i] == "string") {
index("hasSubject", doc.subjects[i], {facet: true});
}
}
}
}
这会不会突然让它好起来…?因此新文档位于;然而,关于刻面的条目是相同的。所以没什么大不了的 不过,为了回答您的问题,我认为文档所说的是,数据库中的所有JSON文档都必须包含
subjects
字段,这就是您在示例中声明的内容
<>所以我也会考虑定义你的搜索索引,比如:
function (doc) {
for(var i=0; i < doc.subjects.length; i++)
index("hasSubject", doc.subjects[i], {facet: true});
}
function (doc) {
if (doc.subjects) {
for(var i=0; i < doc.subjects.length; i++) {
if (typeof doc.subjects[i] == "string") {
index("hasSubject", doc.subjects[i], {facet: true});
}
}
}
}
我认为这会突然使您的方面不正常。因此,新文档位于;然而,关于刻面的条目是相同的。所以没什么大不了的 不过,为了回答您的问题,我认为文档所说的是,数据库中的所有JSON文档都必须包含
subjects
字段,这就是您在示例中声明的内容
<>所以我也会考虑定义你的搜索索引,比如:
function (doc) {
for(var i=0; i < doc.subjects.length; i++)
index("hasSubject", doc.subjects[i], {facet: true});
}
function (doc) {
if (doc.subjects) {
for(var i=0; i < doc.subjects.length; i++) {
if (typeof doc.subjects[i] == "string") {
index("hasSubject", doc.subjects[i], {facet: true});
}
}
}
}
我想这会让你的脸突然变得不好。嗯。。。这是有道理的!所以它只是针对索引
doc.field
和field
未定义的情况进行了规定?是的。通常,如果要在字段上刻面,则需要确保这些字段存在且未定义。我想我们都是这么说的。嗯。。。这是有道理的!所以它只是针对索引doc.field
和field
未定义的情况进行了规定?是的。通常,如果要在字段上刻面,则需要确保这些字段存在且未定义。我想我们都是这么说的。