文本搜索(Text Search)
MongoDB提供 文本索引 来支持对Atlas Search string内容进行文本 查询。文本索引可以包括值为string或string元素数组的任何字段。
注意
MongoDB Atlas还提供Atlas Search ,这是一种更强大、更灵活的文本Atlas Search解决方案。 本页的其余部分讨论文本索引,而不是 Atlas Search。
要使用 Ruby 驱动程序执行文本搜索,请先使用 indexes.create_one()
创建文本索引。 以下命令在test
数据库中的restaurants
collection的name
字段上创建文本索引。
client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') client['restaurants'].indexes.create_one( { :name => 'text' } )
创建文本索引后,您可以将其用作查询的一部分。 restaurants
以下代码查找在collection中包含单词garden
的所有文档,不区分大小写。
client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') client[:restaurants].find( { '$text' => { '$search' => 'garden', '$caseSensitive' => false } } ).each do |document| #=> Yields a BSON::Document. end