当前位置: 首页 > 知识库问答 >
问题:

使用mongoosastic的Elasticsearch查询

从景曜
2023-03-14

我尝试这样做查询:

Gym.search({
                    "query" : {
                        "multi_match": {
                            "fields": ["multi_field"],
                            "query": req.query.q,
                            "fuzziness": "AUTO"
                        }
                    }
                },
                function (err, results) {
                    if (err) {
                        return console.log(JSON.stringify(err, null, 4));
                    }
                    return console.log(JSON.stringify(results, null, 4));
                });

但它返回

“Status”:400,“DisplayName”:“BadRequest”,“Message”:“SearchPhaseExecutionException[未能执行阶段[query],所有碎片失败;shardFailures{[PzLsLPHfTMu68AQ94_Af8g][gyms][0]:SearchParseException[[gyms][0]:From[-1],size[-1]:解析失败[未能解析源[{\”query\“:{\”query\“:{\”Multi_Match\“:{\”Fields\“:[\”yparsingException[[gyms]没有为[query]]注册查询;}{[PzLsLPHfTMu68AQ94_Af8g][gyms][1]:searchparseException[[gyms][1]:from[-1],size[-1]:解析失败[未能解析源[{\“query\”:{\“query\”:{\“multi_match\”:{\“fields”:[\“multi_match\”:{\“fields”:[\“multi_field\”],\“query\”:“lcc\MU68AQ94_AF8G][gyms][2]:SearchParseException[[gyms][2]:From[-1],size[-1]:解析失败[未能解析源[{\”query\“:{\”query\“:{\”multi_match\“:{\”fields\“:[\”multi_field\“],\”query\“:\”lcc\“,\”fuzziness\“:\”auto\“}}}}]]];嵌套:queryParsingException[[gyms]没有为[query]]注册查询;}{[PzLsLPHfTMu68AQ94_Af8g][gyms][3]:searchParseException[[gyms][3]:from[-1],size[-1]:解析失败[未能解析源[{\”query\“:{\”query\“:{\”multi_match\“:{\”fields“:[\”multi_match\“:{\”fields“:[[gyms]没有为[query]]注册查询;}{[PzLsLPHfTMu68AQ94_Af8g][gyms][4]:SearchParseException[[gyms][4]:From[-1],size[-1]:解析失败[未能解析源[{\”query\“:{\”query\“:{\”multi_match\“:{\”fields\“:[\”multi_match\“:{\”fields\“:[\”multi_field\“],\”query\“:”lcc\“,\”

当我用卷曲的时候它就起作用了...有人知道怎么修吗?

共有1个答案

刘升
2023-03-14

试着这样做:

 Gym.search({
                "multi_match": {
                    "fields": ["multi_field"],
                    "query": req.query.q,
                    "fuzziness": "AUTO"
                }
            },
            function (err, results) {
                if (err) {
                    return console.log(JSON.stringify(err, null, 4));
                }
                return console.log(JSON.stringify(results, null, 4));
            });
 类似资料:
  • 我在ElasticSearch有索引。其中的文档具有重复的字段值。在查询结果中,我需要删除所有重复项,并且只获得不同的值。例如: PUT localhost:9200/人 POST localhost:9200/人/人 我试图通过字段“name”删除重复的术语聚合,但它不起作用。 获取localhost:9200/person/person/_search 结果: 聚合应用于name=“marry

  • 问题内容: 当我将Flashlight与Firebase结合使用并通过直接查询进行Elastic搜索时,它确实起作用: 询问 码 但是,当我希望不仅限于10条提示时,此操作将失败(无结果) 询问 码 我使用Flashlight示例中提供的选项,并为option添加零件: 为什么可以在https://github.com/firebase/flashlight/issues/29#issuecomm

  • 我想更新索引中的所有文档。我发现更新查询是我们应该使用的方法。但是,当我使用ctx._now作为更新文档字段的值时,我遇到了问题,导致字段值变为NULL。 这是示例: 当我使用随机数值时,它是工作。假设我把timenow=5。然后,All documents字段timenow变为5。但是,使用这种ctx方法是行不通的。 我该怎么做呢? 附加信息 示例:POST INDEX/TYPE/24/_UPD

  • 我可以使用Lucene查询ElasticSearch索引吗? 我使用ElasticSearch创建了一个索引,并插入了以下三个文档: null 不幸的是,d.get(“_source”)也返回null。 如何检索匹配查询的文档字段? 谢谢你。

  • 该字段中的映射是: 所以,我想我误解了通配符在ES中是如何工作的。有人知道为什么不匹配文本字段中的“任何字符”吗? 谢了。 > 创建索引

  • 问题内容: 我有以下 匹配 查询字符串: 我想它的意思是,但实际上它能执行。 然后我尝试了 术语 查询字符串: 它执行,显示 术语 查询通过数组支持多个OR条件。 我很好奇为什么 匹配 查询不支持通过数组的 OR 条件?并且它不显示任何语法错误。 问题答案: 该查询仅支持要指定的单个字符串值。官方文档中没有明确指定它,但是如果您愿意阅读的源代码,则可以看到,在解析字段时,解析器将跳过标记来分隔数组