百万的数据量,不算大,有个字段,值的长度 > 100,就是很长,包含中文、英语、几乎所有的字符都存在。使用了全文索引,但是不是很理想:
1,搜索特别慢,即使是使用索引了。
db.tests.find({'$text':{'$search':'test'}})
2,当搜索存在''的时候,虽然会被转换为'',但是没有任何反映,就好像根本没有在运行一样。反复退出,再开启(指的是客户的mongo),再查询。就会把内存(12G,除去系统能用11G)跑满,直接卡死。硬重启。
db.tests.find({'$text':{'$search':'test.06'}}) #想要的。
但是通过web输入会变成
db.tests.find({'$text':{'$search':'test\1.06'}})
不知道这个样的需求适合建索引吗?
谢谢
高洛峰2017-05-31 10:37:52
全文索引目前建议还是使用专门的搜索引擎去做,MongoDB虽然支持全文索引,但是功能并不是很丰富,使用场景有局限性,很多情况下还存在问题,所以并不推荐使用。