【MongoDB】索引 – 文本索引(指定语言)

一、语言列表

语言名称 代码
danish da
dutch nl
english en
finnish fi
french fr
german de
hungarian hu
italian it
norwegian nb
portuguese pt
romanian ro
russian ru
spanish es
swedish sv
turkish tr

二、指定默认语言

创建文本索引时默认使用的语言是english,但可以在创建索引的时候指定默认语言

1、准备工作

这里准备一些数据

javascript 复制代码
db.books.drop();

db.books.insert({_id: 1, name: "Java", yuyan: "es", description: "java 入门图书" });
db.books.insert({_id: 2, name: "C++", yuyan: "en", description: "C++ 入门图书" });
db.books.insert({_id: 3, name: "Java设计模式", yuyan: "es", description: "java 设计模式" });

2、创建索引

javascript 复制代码
db.books.createIndex(
    {description: 'text'}, 
    {default_language: 'es'}
);

上面创建了description字段的文本索引并指定了default_language为es;

3、查询索引

javascript 复制代码
db.books.getIndexes();

结果如下:

可以看到default_language设置成了es

三、指定语言字段

创建文本索引时指定语言的字段默认是language,但可以在创建索引的时候指定语言字段

1、准备工作

这里准备一些数据

javascript 复制代码
db.books.drop();

db.books.insert({_id: 1, name: "Java", yuyan: "es", description: "java 入门图书" });
db.books.insert({_id: 2, name: "C++", yuyan: "en", description: "C++ 入门图书" });
db.books.insert({_id: 3, name: "Java设计模式", yuyan: "es", description: "java 设计模式" });

2、创建索引

javascript 复制代码
db.books.createIndex(
    {description: 'text'}, 
    {language_override: 'yuyan'}
);

上面创建了description字段的文本索引并指定了language_override为yuyan字段,在索引创建时会根据yuyan字段的值作为语言对文本创建索引

3、查询索引

javascript 复制代码
db.books.getIndexes();

结果如下:

可以看到language_override设置成了yuyan字段

相关推荐
没有bug.的程序员几秒前
电商秒杀系统深度进阶:高并发流量建模、库存零超卖内核与 Redis+MQ 闭环
数据库·redis·缓存·高并发·电商秒杀·流量建模·库存零超卖
先做个垃圾出来………10 分钟前
Python常见文件操作
linux·数据库·python
轩情吖12 分钟前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
LaughingZhu12 分钟前
Product Hunt 每日热榜 | 2026-02-25
数据库·人工智能·经验分享·神经网络·chatgpt
Flobby52913 分钟前
深入理解 MySQL 锁:从全局锁到死锁检测
数据库·后端·mysql
是小崔啊14 分钟前
MySQL22 - 分库分表的聚合问题
数据库
玖雨y22 分钟前
【DDIA】存储和查询
数据库·后端·存储·ddia
蒸蒸yyyyzwd30 分钟前
redis实战学习笔记p1-12
数据库·笔记
菜鸟小九31 分钟前
redis原理篇(五种数据结构)
数据结构·数据库·redis
Henry Zhu12333 分钟前
数据库:事务管理详解
数据库