Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Mongodb地图集搜索:如何对同一个查询字符串使用多个分析器,以便至少返回一些结果

Mongodb地图集搜索:如何对同一个查询字符串使用多个分析器,以便至少返回一些结果
EN

Stack Overflow用户
提问于 2020-10-09 15:30:18
回答 1查看 733关注 0票数 1

所以问题陈述是-我使用atlas search来搜索产品数据,并有多种语言的产品详细信息。为此,我使用了多分析器并定义了标准和相应的语言analyzer,以便在任何情况下都能获得匹配的产品。要求是,由于这是一个产品搜索,我需要返回至少一些建议,让用户有一个看一看,并通过返回的搜索结果的产品。以下是我在研究如何在单个字段上应用多个分析器后使用的映射:

代码语言:javascript
运行
AI代码解释
复制
{
  "mappings": {
    "dynamic": false,
    "fields": {
      "name": {
        "type": "string",
        "analyzer": "lucene.standard",
        "multi": {
          "german": {                //german is the name that I have given to this analyzer
            "analyzer": "lucene.german",
            "type": "string"
          },
          "french": {                //french is the name that I have given to this analyzer
            "analyzer": "lucene.french",
            "type": "string"
          }
        }
      }
    }
  }
}

现在,我想要的是-如果我正在搜索英语、德语或法语的单词,我必须得到结果。这个映射也很好,我得到了所有三种语言的结果。但用例是,我希望在这些情况下都能得到结果:

搜索字符串为英语、德语或法语

搜索字符串模糊(有拼写错误)

搜索字符串包含任何特殊字符或空格

搜索字符串可以被认为是一个完整的词,并且可以在此基础上返回结果。

以上所有的要求让我可以使用所有的分析器--标准的、关键字的、语言的、空格的和简单的。但是这会将索引大小增加到超过3KB (这是一个上限),而且即使对于我目前只应用了语言和标准分析器的映射,我也得不到结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 06:42:39

Mongodb Atlas搜索文档路径

Path Construction

帮助我了解了如何在不使查询复杂化的情况下做到这一点,并且不使用

compound运算符。从文档中:

path参数由Atlas搜索运算符用来指定要搜索的一个或多个字段。它可能包含:

字符串

字符串数组

多分析器规范

包含字符串和多分析器规范组合的数组

这是我在查询中修改的内容:

代码语言:javascript
运行
AI代码解释
复制
{
    $search: {
               text: {
                        query: event.queryStringParameters.q,
                        path: ['name',{"value": 'name', "multi": "german"},{"value": 'name', "multi": "french"}],
                        fuzzy: {
                                maxEdits: 2
                        }
               }
      }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64282981

复制
相关文章
mysql一次查询,返回多个统计结果
注意:count是返回匹配条件的行数,只要有值就会算进去,所以这里不符合条件的算作Null
全栈程序员站长
2021/05/19
4K0
MySQL | 如何对查询结果集进行排序
数据操作语言:结果集排序 如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用 ORDER BY 子句。 SELECT ...... FROM ...... ORDER BY 列名 [ASC | DESC]; SELECT ename,sal FROM t_emp ORDER BY sal; SELECT empno,ename,sal,deptno FROM t_emp ORDER BY sal DESC; 排序关键字 ASC 代表升序(默认),DESC
Zkeq
2022/05/18
6.4K0
MySQL | 如何对查询结果集进行排序
使用c#对MongoDB进行查询(1)
    在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型。可以使用BsonDocument对不规则数据进行操作,这个类型继承了IEnumberable<>类,也就是说又将每一个实体模型看做一个集合,我们可以使用下标方式获取实体模型中的值
莫问今朝
2019/02/25
3K0
第18篇-用ElasticSearch索引MongoDB,一个简单的自动完成索引项目
另外Elasticsearch入门,我强烈推荐ElasticSearch新手搭建手册和这篇优秀的REST API设计指南 给你,这两个指南都是非常想尽的入门手册。
普通人刘大
2020/06/23
5.3K0
Elasticsearch学习笔记
搜索包括查询多个分片,并将多个分片元信息合并,然后再根据元数据获取真正数据两个步骤。
kinnylee
2020/10/15
1.9K0
Elasticsearch学习笔记
mongodb 导出数据_dbeaver导出查询结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/16
2.2K0
SQL嵌套查询_sql嵌套查询返回多个字段
说到嵌套查询,首先得理解嵌套查询是什么意思,简单来说就是,一个查询语句可以嵌套在另外一个查询语句的where子句中。外层的查询称为父查询(主查询),内层的查询称为子查询(从查询)。
全栈程序员站长
2022/09/22
2.9K0
ElasticSearch权威指南:基础入门(中)
官方网站:https://www.elastic.co/guide/index.html
HLee
2021/03/19
6.3K0
ElasticSearch权威指南:基础入门(中)
95道MongoDB面试题(含答案),1万字详细解析!
95道MongoDB面试题(含答案),1万字详细解析!
Java架构师必看
2021/05/14
8.2K0
95道MongoDB面试题(含答案),1万字详细解析!
《读书报告 – Elasticsearch入门 》----Part II 深入搜索(2)
这一章开始介绍 全文检索 :怎样对全文字段(full-text fields)进行检索以找到相关度最高的文档。
流川疯
2019/01/17
1.2K0
MongoDB(13)- 查询操作返回指定的字段
答案是不能的,如果想指定 <projection> 是包含字段,那所有字段值都得统一是 1,相反如果是不包含,也必须都是 0
小菠萝测试笔记
2021/06/10
6.5K0
sql嵌套查询效率_sql嵌套查询返回多个字段
为了查询一个字段,使用了五层嵌套循环,但是花费了约1分钟 但是5个表的数据每个最多只有10条,怎么会这么慢呢?
全栈程序员站长
2022/09/22
2.8K0
sql嵌套查询效率_sql嵌套查询返回多个字段
Grafana: (4) 使用外联表格(Outer Join Table) 展示多个查询结果
Grafana: (4) 使用外联表格(Outer Join Table) 展示多个查询结果
老麦
2023/08/10
3.1K0
Grafana: (4) 使用外联表格(Outer Join Table) 展示多个查询结果
性能最佳实践:查询模式和分析
欢迎阅读MongoDB性能最佳实践系列博客的第二篇。在本系列中,我们将讨论在大规模数据下实现高性能,需要在许多重要维度上进行考虑的关键因素,其中包括:
MongoDB中文社区
2020/09/01
1.5K0
mybatis返回值_存储过程获取查询结果
以Map为最外层容器时就要加 @MapKey("id") 指定提取 id 作为 key。
全栈程序员站长
2022/11/09
2.2K0
js如何返回异步函数结果
假设您有这样一个问题:您正在进行一个异步调用,并且需要从原始函数返回该调用的结果。
IT工作者
2022/01/01
6.4K0
全网最全95道MongoDB面试题1万字详细解析
MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在给 WEB 应用提供可扩展的高性能数据存储解决方案。
程序员追风
2020/06/11
13.5K0
python-Python与MongoDB数据库-处理MongoDB查询结果
在使用Python操作MongoDB数据库时,查询文档是一项非常重要的任务。当我们使用PyMongo进行查询操作时,我们可以获取一个游标对象,它可以用于遍历查询结果并对查询结果进行处理。
玖叁叁
2023/04/22
1.3K0
ElasticSearch权威指南:基础入门(下)
官方网站:https://www.elastic.co/guide/index.html
HLee
2021/03/19
4K0
ElasticSearch权威指南:基础入门(下)
点击加载更多

相似问题

在MongoDB地图集搜索中搜索多个查询/路径

115

Mongodb地图集搜索:应用多语言分析器

10

Mongodb地图集搜索:哪个分析器是搜索多项和条件的最佳分析器?

210

如何从mongoDB聚合()查询返回多个结果?

15

MongoDB:查询,返回至少包含一些选择字段的文档

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文