MongoDB的.[索引太大而无法索引]

Sto*_*orm 7 indexing full-text-search mongodb

一些背景:我打算将MongoDB用作我的一些网站的发布前端数据库.实际数据将保存在SQL Server数据库中,并且将有预定时间间隔填充MongoDB的后台作业,以便提高网站性能.

情况:我有一个表'x',我翻译成mongo集合,一切正常.

'x'有一个列'c',它最初是源数据库中的NVARCHAR(MAX),并且其中包含多语言文本.

当我按列'c'搜索时,mongo正在对集合进行全扫描.

所以我尝试了一个有效的ensureIndex({c:1}),但当我检查mongodb日志时,它向我显示90%的数据无法索引为[Key Too Large To Index] !!

因此已经索引了10%的数据,现在返回10%的结果!!

我有什么选择?

注意:我使用此列在SQL Server中进行全文搜索,现在我不确定是否应该继续使用Mongo :(

Rob*_*eiz 24

尝试使用此参数运行mongod进程:

sudo mongod --setParameter failIndexKeyTooLong=false
Run Code Online (Sandbox Code Playgroud)

而不是再试一次.


ALo*_*LoR 0

如果您需要在大字符串中搜索文本,您可以使用其中之一:
关键字拆分
正则表达式

前者的缺点是您需要一些“逻辑”来组合关键字进行搜索,后者会严重影响性能。
如果您确实需要全文搜索,最好的选择可能是使用外部索引器,例如 solr 或 lucene。