我有一个名为偏差属性的"文档"(activerecords).该属性的值为"Bin X""Bin $""Bin q""Bin%"等.
我正在尝试使用tire/elasticsearch来搜索属性.我正在使用空白分析器来索引偏差属性.这是我创建索引的代码:
settings :analysis => {
:filter => {
:ngram_filter => {
:type => "nGram",
:min_gram => 2,
:max_gram => 255
},
:deviation_filter => {
:type => "word_delimiter",
:type_table => ['$ => ALPHA']
}
},
:analyzer => {
:ngram_analyzer => {
:type => "custom",
:tokenizer => "standard",
:filter => ["lowercase", "ngram_filter"]
},
:deviation_analyzer => {
:type => "custom",
:tokenizer => "whitespace",
:filter => ["lowercase"]
}
}
} do
mapping do
indexes :id, :type => 'integer'
[:equipment, :step, …Run Code Online (Sandbox Code Playgroud) 我在我的分片集合'col'上注意到db.col.count()没有返回实际的文档数(通过使用聚合框架找到).
根据MongoDB文档:
On a sharded cluster, db.collection.count() can result in an inaccurate count if orphaned documents exist or if a chunk migration is in progress.
Run Code Online (Sandbox Code Playgroud)
我正在尝试按照清理孤儿的指示:
db.runCommand( {
cleanupOrphaned: "my_database.col",
} )
Run Code Online (Sandbox Code Playgroud)
但是,该命令已运行很长时间.查看任何分片上的mongoDB日志,我看到:
2014-11-07T15:33:49.737-0500 [conn862] rangeDeleter waiting for open cursors in: my_database.col, min: { _id: MinKey }, max: { _id: -8172160724588201855 }, cursors: [ 91955293283 ]
Run Code Online (Sandbox Code Playgroud)
这些等待开放游标消息的原因是什么?我该如何解决?