如何为复杂的mongodb搜索设计数据库模式

时间:2015-12-10 08:08:35

标签: mongodb search unicode full-text-search

目前我的文档(架构)看起来像这样。

var Schema = {
    name: "fish",
    location: "United States, Michigan, Ann Arbor",
    description: {
        en: "newspaper",
        de: "zeitung",
        ch: "報紙"
    }
}   

我按如下方式设置了一个文本索引:

db.collection.createIndex( { "$**": "text" } )

当用户搜索“报纸”时,即使它不完全相同,也是最佳的。

db.collection.find({$text: {$search: "newspapers"}})  // ( ͡◉ ͜ʖ ͡◉)

但是当短语是unicode字符或非英语时,搜索不会返回上述文档。

db.collection.find({$text: {$search: "zeitungen"}})  // no result
db.collection.find({$text: {$search: "大報紙"}})      // no result
db.collection.find({$text: {$search: "news"}})      // no result

有谁知道如何解决这个问题?这可以在mongodb解决吗?

1 个答案:

答案 0 :(得分:1)

你可以看看mongodb的全文搜索。它可能会对你有所帮助,它不是替代Elastic serach,solr但它可以解决你的问题。 [参考文献]:(https://docs.mongodb.org/manual/reference/operator/query/text/