Lucene Cloudant搜索字段已编制索引,没有位置数据;无法运行短语查询
我有以下Cloudant搜索索引Lucene Cloudant搜索字段已编制索引,没有位置数据;无法运行短语查询,lucene,couchdb,cloudant,nosql,Lucene,Couchdb,Cloudant,Nosql,我有以下Cloudant搜索索引 "indexes": { "search-cloud": { "analyzer": "standard", "index": "function(doc) { if (doc.name) { index("keywords", doc.name); index("name", doc.name, {
"indexes": {
"search-cloud": {
"analyzer": "standard",
"index": "function(doc) {
if (doc.name) {
index("keywords", doc.name);
index("name", doc.name, {
"store": true,
"index": false
});
}
if (doc.type === "file" && doc.keywords) {
index("keywords", doc.keywords);
}
}"
}
}
由于某些原因,当我搜索特定短语时,会出现一个错误:
搜索失败:字段“关键字”被索引,没有位置数据;无法运行短语查询(term=FIRSTWORD)
因此,如果我搜索第一个单词第二个单词,看起来第一个单词出现了错误
注意:我做的每一个搜索短语都不会出现这种情况
有人知道为什么会这样吗
doc.name
和doc.keywords
只是字符串
doc.name
通常类似于“2004/04/14 John Doe 1234文档文件夹”
doc.keywords
通常是随机的,比如“再次测试”
我之所以在关键字索引下存储名称和关键字,是因为我希望任何人都能够通过键入字符串值来搜索关键字或名称。如果这不是最佳做法,请告诉我。问题可能是您的某些文档包含带有字符串值的
关键字字段,而其他文档包含具有不同类型的关键字字段,可能是数组。我相信这种情况会导致您收到的错误。您是否可以再次检查关键字
字段的所有值是否实际上都是字符串?问题可能在于,您的某些文档包含具有字符串值的关键字
字段,而其他文档包含具有不同类型(可能是数组)的关键字
字段。我相信这种情况会导致您收到的错误。您是否可以再次检查关键字
字段的所有值是否都是,字符串?我不熟悉Cloudant,但它真的与Elasticsearch集成了吗?@Val我误读并修复了标记我不熟悉Cloudant,但它真的与Elasticsearch集成了吗?@Val我误读并修复了标记你完全正确。出于某种原因,我的一些关键字被记录为整数。谢谢你,布拉德利,太好了!很高兴我能帮助你。你说得完全正确。出于某种原因,我的一些关键字被记录为整数。谢谢你,布拉德利,太好了!很高兴我能帮助你。