MongoDB学习日记 - java代码(六):索引 index
2015-09-16 18:19
786 查看
这里的示例代码都是简要代码,详细代码可以参考我打包好的代码,地址:百度云 mongo-demo.rar
MongoDB 的索引太复杂了,这里就介绍下,基本够用;如果有开发需求,那么你还是仔细看看,功能还是很强大的,例如:地理位置索引等。
这里再讲讲文本索引的使用吧:
(注:这段代码是从 MongoDB 官网 copy 下的代码。)
Filters.text() : 这是 MongoDB 的全文检索,通过文本索引来检索,语法解释如下(前面没讲):
需要注意
MongoDB 的索引太复杂了,这里就介绍下,基本够用;如果有开发需求,那么你还是仔细看看,功能还是很强大的,例如:地理位置索引等。
MongoClient client = new MongoClient(); MongoDatabase database = client.getDatabase("mydb"); MongoCollection<Document> collection = database.getCollection("test"); // 语法解释 :db.test.createIndex({"i":1}) collection.createIndex(new Document("i",1)); // 创建普通索引 // 语法解释 :db.test.createIndex({"content":"text"}) collection.createIndex(new Document("content","text")); // 创建文本索引 ListIndexesIterable<Document> list = collection.listIndexes(); for (Document document : list) { System.out.println(document.toJson()); } client.close();
这里再讲讲文本索引的使用吧:
// 插入测试数据 /*collection.insertOne(new Document("_id", 0).append("content", "textual content")); collection.insertOne(new Document("_id", 1).append("content", "additional content")); collection.insertOne(new Document("_id", 2).append("content", "irrelevant content"));*/ long matchCount = collection.count(Filters.text("textual content -irrelevant")); System.out.println("Text search matches: " + matchCount); // Find using the $language operator Bson textSearch = Filters.text("textual irrelevant", "english"); matchCount = collection.count(textSearch); System.out.println("Text search matches (english): " + matchCount); // Find the highest scoring match Document projection = new Document("score", new Document("$meta", "textScore")); Document myDoc = collection.find(textSearch).projection(projection).first(); System.out.println("Highest scoring document: " + myDoc.toJson());
(注:这段代码是从 MongoDB 官网 copy 下的代码。)
Filters.text() : 这是 MongoDB 的全文检索,通过文本索引来检索,语法解释如下(前面没讲):
db.runCommand("text", {search: "textual content -irrelevant"})
需要注意
"textual content -irrelevant"这部分的意思是:通过创建的文本索引,查找所有包含 textual 和 content 而不包含 irrelevant 的 document(文档)。
Filters.text("textual irrelevant", "english");的意思则是匹配 english,可以添加多个
Filters.text("textual irrelevant", "english Chinese"
相关文章推荐
- scrapy&mongodb基本使用
- MongoDB学习日记 - java代码(五):增删改查
- mongodb的状态分析
- mongodb的索引
- mongodb查询不重复数据的记录总数
- windows下MongoDB的安装及配置
- MongoDB学习日记 - java代码(四):构建Document
- mongodb分片集群突然停电造成一些错误,分片无法启动(非正常关闭)
- mongodb 复杂聚合
- MongoDB学习日记 - java代码(三):数据库与集合操作
- mongodb添加文件出现error
- Scrapy和MongoDB的应用---爬取
- MongoDB基本使用
- 在C#中使用官方驱动操作MongoDB
- MongoDB 3.0.6 安装 增删改查
- MongoDB学习日记 - java代码(二):建立连接
- MongoDB学习日记 - java代码(一):mongodb driver
- MongoDB学习日记(十):聚合
- C#操作MongoDB数据库方法
- mongodb备份还原脚本