mongoDB 全文搜索 TextSearch
来源:互联网 发布:app程序员招聘要求 编辑:程序博客网 时间:2024/05/18 21:09
snowball(默认分词器)只有在Mongodb 3.2之后的企业版中才开始加入了对中文的支持,之前或者社区的版本在建立全文索引时会自动过滤中文字符。
在Mongodb 3.2企业版中,对中文建立全文索引后,默认使用的是与英文同样的分词规则,即以空格与符号作为词与词之间分隔的界限。
所以,当使用“福尔摩斯”作为搜索词时,无法搜索到“福尔摩斯探案全集”,只能搜索到类似“福尔摩斯(1)”之类的结果
问题-方案
1.产品需要全文检索,数据库是使用的MongoDB,MongoDB的全文检索太慢,打算使用ElasticSearch
2.方案1:利用 ElasticSearch 的 River 来同步数据,
在github上有MongoDB River的插件:https://github.com/richardwilly98/elasticsearch-river-mongodb。
可以看到使用的版本很旧,原因是官方已经在 1.5 以后的版本弃用 River,为了用户的迁移,会一直保留到 2.0 版本。所以这个方案的可行性比较低,但是是可以使用的。
3.方案2:利用mongo-connector,
https://github.com/mongodb-labs/mongo-connector。
这个是 MongoDB 官方的开发人员用 Python 写的一个工具,目前支持将 MongoDB 的数据同步到 Solr、ElasticSearch、MongoDB 中,并且支持用户自己扩展。
实际(方案2)
一.安装Elasticsearch并配置
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
2.配置mongo-connector 先安装pip: yum install python-setuptools && easy_install pip 通过pip安装mongo-connector pip install mongo-connector
- 1
- 2
- 1
- 2
二.测试
在mongo容器中写入测试数据
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
通过 elasticsearch 容器进行检索
0 0
- mongoDB 全文搜索 TextSearch
- sphinx结合mongodb、xml做全文搜索
- mongodb全文搜索解决方案(lucene+IKAnalyzer)
- [教程]MongoDB 从入门到进阶 (TextSearch)
- 搜索高亮【jquery.textSearch-1.0.js】用法
- 全文搜索
- 全文搜索
- 全文搜索
- 全文搜索
- mongodb如何全文检索
- mongoDB的全文索引
- MongoDB全文索引用法
- 页面内全文搜索
- 全文搜索lucene简介
- SQL SERVER全文搜索
- MySQL 全文搜索
- [转] 走进全文搜索
- MySQL 全文搜索
- CSS 动画:animation和transition
- java POI 下拉选的实现
- 02 C++ 的引用
- 数据库抽象层PDO
- C/S和B/S两种架构区别与优缺点分析
- mongoDB 全文搜索 TextSearch
- Java并发容器和框架
- 剑指offer-- 反转链表
- 面试总结
- cmdline常用参数
- 两个例子(来自Storm实战 构建大数据实时计算)
- Acache缓存的使用
- Java8初体验(二)Stream语法详解
- springmvc三种处理器映射器handlerMapping