MongoDB实战第二版笔记(10)第九章笔记

MongoDB实战第二版笔记(10)第九章笔记

  1、文本搜索的几个特点:

  • 搜索时大小写不敏感
  • 如果输入java则搜索是看不到任何包含JavaScript的搜索结果。因为搜索引擎认为二者是不同单词。

  2、方面索引,允许根据某个特性分组商品。同义词库,允许不同的词表示相同含义。词根分析允许找出单词的不同形式。分词是指在搜索前对关键字过滤。

  3、方面索引可以让用户很方便基于某个条件进一步限制搜索结果的范围。

  4、MongoDB可以做什么?

  • 基于词根分析的自动化实时索引
  • 根据字段名可选分配权重
  • 多语言支持
  • 分词
  • 精确词汇匹配
  • 根据给定短语或单词排除某些结果的能力

MongoDB不允许编辑分词列表。

  5、MongoDB提供支持的细节:

  • 首先定义文本搜索需要的索引
  • 然后在基本查询和聚合框架里使用文本搜索

  6、 $text定义查询为文本搜索, $search定义搜索使用的字符串。

db.hook.find({$text:{$search:'actions'}},{title:1})

  7、除了搜索任意数量的单词,指定"or"来组合多个搜索条件,MongoDB还允许做下面的事情

  • 使用“and”代替"or"表示并且搜索关系
  • 执行精确短语匹配【可以使用双引号分隔】
  • 使用特定单词排除文档【单词前加上“-”号】
  • 使用特定短语排除文档

  8、聚合框架使用 $text搜索的限制:

  • 使用$text函数的$match操作符必须是管道里的第一个操作,而且必须跟着其他的$meta:textScore操作符
  • $text函数只能在管道里出现一次
  • $text函数不能与$or$not一起使用

  9、使用$match文本搜索字符串,格式必须与find()命令的格式一致。

  • 如果单词或短语放在双引号,文本必须精确匹配
  • 如果单词或短语前缀用了负号(-),就是用此条件排除文档

  10、MongoDB无法识别复数或其他没有词根处理的非英文语音,除非告诉了它使用了哪种语言。有三种途径可以告诉:

  • 索引中—可以为集合指定默认语言
  • 插入文档时—可以重写某个文档或字段默认的语言,告诉MongoDB和索引指定的默认语言不同
  • 当find()和aggregate()执行文本搜索时—可以告诉MongoDB搜索使用的语言。

  11、支持的可用的语言

缩写语言缩写语言
dadanishnonorwegian
nldutchptportuguese
enEnglishroromanian
fifinnishrurussian
frfrenchesspanish
degermansvswedish
huhungariantrturkish
ititalian

如果指定none,则会跳过词根处理和分词。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuYunTan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值