Lucene 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, {

我有以下Cloudant搜索索引

"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我误读并修复了标记你完全正确。出于某种原因,我的一些关键字被记录为整数。谢谢你,布拉德利,太好了!很高兴我能帮助你。你说得完全正确。出于某种原因,我的一些关键字被记录为整数。谢谢你,布拉德利,太好了!很高兴我能帮助你。