Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >在3.2中添加到MongoDb中的文本索引是否消除了lucene的需要?

在3.2中添加到MongoDb中的文本索引是否消除了lucene的需要?
EN

Stack Overflow用户
提问于 2017-05-12 04:12:01
回答 2查看 368关注 0票数 0

我想有一个网站与全文搜索的一些文本字段。我可以在索尔之上使用卡桑德拉,但我的公司希望我使用MongoDb

我正在考虑使用卢塞尼构建搜索查询,但我听说您不再需要在MongoDB中这样做了,这是与全文搜索一起提供的。

我的问题是:在3.2中添加到MongoDb中的文本索引是否消除了lucene?的需要?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 04:39:58

  1. Mongodb $text索引有词干词干。如果您的字段有一个$text索引,您可以搜索厨师工作,并使用烹饪文档。
  2. 它还可以搜索文档中的部分单词,比如您可以搜索ook,它会给您提供包含bookcook等的文档。
  3. 有一件事,lucene,如果强大的话,是用来标记单词的,你的意思是自动更正。因此,例如,lucene中的edge标记器将标记以下单词:

单词:mongodb

以下标记:

mo,on,go,od,db,mon,ong,上帝,odb,mong,ongo,ngob,godb等等。

取决于您为令牌程序设置的最小字符限制。

现在,当您搜索kongo时,它将检查令牌,并给每个令牌评分。标记得分最高的文档将因拼写不正确而自动更正。在mongodb中这样做是很困难的。

  1. 您可以在lucene中创建多个索引、分析器、令牌器和创建自定义索引,在mongodb中也可以使用它。
  2. 您可以在lucene中直接实现自定义停止词和规范化文档,在mongodb中这样做是非常重要的。
  3. 您可以在lucene中使用不同的索引,同时保存数据和搜索非常强大的数据。

另外,我有一个关于mongodb的项目,我们想实现所有这些,这是太多的自定义代码。我们转向了elasticsearch,生活被分类了。

票数 0
EN

Stack Overflow用户

发布于 2017-05-12 04:36:28

Lucene要灵活得多,因为文本搜索是它的主要目的。

mongodb中的全文索引非常有限。例如,每个集合只有一个索引,没有自定义标记器、分析器、停止词、受限制的语言等等。它应该可以满足基本的搜索需求,但您需要检查它的能力是否符合您的要求。

如果您比较构建在Lucene之上的Solr或ElasticSearch的功能,那么差距就更大了。在蒙戈没有像过载查询这样的东西。

另一方面,使用内置文本搜索大大简化了系统,减少了开发时间和维护成本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43937495

复制
相关文章
lucene给文本索引和搜索功能的应用
最近一段时间由于公司需要 ,模糊搜索出相似的关键词,所以直接考虑使用了lucene。
用户5166556
2019/04/16
5770
MongoDB(五)—-MongoDB中的索引类型
在MongoDB中支持多种类型的索引,包括单字段索引、复合索引、多key索引、文本索引等,每种类型的索引有不同的使用场合。
全栈程序员站长
2021/04/07
2K0
初识MongoDB中的索引
索引就像图书的目录一样,可以让我们快速定位到需要的内容,关系型数据库中有索引,NoSQL中当然也有,本文我们就先来简单介绍下MongoDB中的索引。 本文是MongoDB系列的第九篇文章,了解前面的文章有助于更好的理解本文。 ---- 索引创建 默认情况下,集合中的_id字段就是索引,我们可以通过getIndexes()方法来查看一个集合中的索引: db.sang_collect.getIndexes() 结果如下: [ { "v" : 2, "key" : {
江南一点雨
2018/04/02
1.3K0
Lucene的几点索引建设优化
现如今越来越多的人使用Lucene来开发自己的搜索引擎,在数据量不大的情况下,我们一般不会太关注创建索引的效率,但是,当数据达到一定的数量时候,我们就必须要考虑如何的去提高创建索引的性能,以减少创建索引的时间。
星哥玩云
2022/07/01
3480
利用Lucene的IndexWriter建立索引(详解)
/*  * 建立索引,然后把建立后的文档添加到索引中去  * 提示先使用Document和Field把Field加入到Document中去,  * 接着把Document建立成为一个索引  * */ package comThree;
星哥玩云
2022/07/04
5550
Lucene索引数据异常
最近突然发现本站的全文检索功能失效了,在本地进行调试,发现抛出 TokenStream contract violation异常,很奇怪的异常,因为之前本功能是好好的,也没改动,并且我也没使用TokenStream,异常如下:
幽鸿
2020/04/02
7290
在Lucene或Solr中实现高亮的策略
景 最近要做个高亮的搜索需求,以前也搞过,所以没啥难度,只不过原来用的是Lucene,现在要换成Solr而已,在Lucene4.x的时候,散仙在以前的文章中也分析过如何在搜索的时候实现高亮,主要有三种方式,具体内容,请参考散仙以前的2篇文章: 第一:在Lucene4.3中实现高亮的方式 http://qindongliang.iteye.com/blog/1953409 第二:在Solr4.3中服务端高亮的方式 http://qindongliang.iteye.com/blog/20342
我是攻城师
2018/05/11
9760
MongoDB 数组在mongodb 中存在的意义
在MOGNODB 的文档设计和存储中,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题, 数组其实比嵌套带来更多的问题,所以今天我们的从数组开始。
AustinDatabases
2022/04/05
4.2K0
MongoDB  数组在mongodb 中存在的意义
MongoDB中各种类型的索引
上篇文章中我们介绍了MongoDB中索引的简单操作,创建、查看、删除等基本操作,不过上文我们只介绍了一种类型的索引,本文我们来看看其他类型的索引。 ---- _id索引 我们在上文介绍过,我们往集合中添加文档时,默认情况下MongoDB都会帮助我们创建一个名为_id的字段,这个字段就是一个索引。默认情况下,一般的集合都会帮我们创建这个字段作为索引,但也有一些集合不会将_id默认作为索引,比如固定集合,这个我们后面的文章会详细说到这个问题。 复合索引 如果我们的查询条件有多个的话,我们可以对这多个查询条件都建
江南一点雨
2018/04/02
1.3K0
在Oracle中,索引是否必须定期重建?索引重建有哪些影响?
一般而言,极少需要重建B树索引,基本原因是B树索引很大程度上可以自我管理或自我平衡。认为需要重建索引的最常见理由有:
AiDBA宝典
2023/04/26
1.5K0
在Oracle中,索引是否必须定期重建?索引重建有哪些影响?
Lucene索引库的维护和查询
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
暴躁的程序猿
2022/03/24
5160
快速学习Lucene-索引库的维护
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
cwl_java
2019/12/25
6240
MongoDB的索引操作
MongoDB中可以使用createIndex()方法创建索引。该方法接受两个参数:一个是要创建索引的字段或字段组合,另一个是一个JSON对象,用于指定索引的选项。
堕落飞鸟
2023/05/09
3100
Meteor mongodb 查询某个数据是否在 Collection 的某个 Array 字段中
我们通常会用一个 Array 字段来储存一组用户 ID 列表或者一组文章 ID 列表。当我们需要查询某个用户是否在这个 Collection 的某个 Array 字段时就会用到本文中提到的方法。
我与梦想有个约会
2023/10/21
2440
Meteor mongodb 查询某个数据是否在 Collection 的某个 Array 字段中
MongoDB中$type、索引、聚合
再次执行db.col.find({“title” : {$type : 2}}).pretty();
别团等shy哥发育
2023/02/25
1.6K0
MongoDB中$type、索引、聚合
Wiredtiger 在MONGODB 中的疑问
MongoDB 中也有类似MYSQL 的数据库引擎的插件化的概念,虽然MYSQL 被ORACLE 搞得现在对这个数据库的引擎认知都存在于INNODB,但实际上MYSQL 在之前的存储引擎还是丰富多彩的,MONGODB 的存储引擎也是如此,目前MONGODB 主推的(官方)的数据库引擎是 WIREDTIGER ,之前MONGODB 官方的数据库引擎是 MMAP1, 而实际上MONGODB 还有一个数据库引擎脚ROCKS DB,听说是不错,至少和WIRETIGER 平分秋色,甚至略胜一筹。
AustinDatabases
2019/06/21
1.8K0
Wiredtiger 在MONGODB 中的疑问
快速学习Lucene-Lucene索引库查询
对要搜索的信息创建Query查询对象,Lucene会根据Query查询对象生成最终的查询语法,类似关系数据库Sql语法一样Lucene也有自己的查询语法,
cwl_java
2019/12/25
5420
Lucene的索引系统和搜索过程分析
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。
ShenduCC
2018/07/24
2.3K0
Lucene的索引系统和搜索过程分析
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。
Hongten
2018/09/13
8980
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。
杉枫
2019/05/25
1.1K0

相似问题

是否需要用于在Lucene中创建索引的原始文件?

13

Lucene在索引和搜索时是否需要相同的Analyzer实例?

10

Lucene爬虫(它需要建立lucene索引)

20

$text查询需要MongoDB文本索引

297

在MongoDB中搜索文本时,$text查询错误需要文本索引

116
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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