我分析文本。 这些文本有标注(如“章”,“风景”,...)。 这些注释都在我的MongoDB集合annotations
,如
{
start: 1,
stop: 10000,
type: chapter,
details: {
number: 1,
title: "Where it all began"
}
},
{
start: 10001,
stop: 20000,
type: chapter,
details: {
number: 2,
title: "Lovers"
}
},
{
start: 1,
stop: 5000,
type: scenery,
details: {
descr: "castle"
}
},
{
start: 5001,
stop: 15000,
type: scenery,
details: {
descr: "forest"
}
}
挑战1:在文本中给定的位置,我想找到的所有注释。 例如查询字符1234
应该告诉我,
- 这是一个章节内
- 它发生在城堡
挑战2:我也喜欢查询范围。 例如查询字符形式9800 to 10101
要告诉我,这倒是chapter 1
, chapter 2
和scenery forest
。
挑战三 :堪比挑战2我想只匹配完全被查询范围覆盖这些注解。 例如查询字符形式9800 to 30000
只返回文档chapter 2
。
对于挑战1我想简单地使用$lt
和$gt
。 例如:
db.annotations.find({start: {$lt: 1234}, stop: {$gt: 1234}});
但我意识到,只为关键指标start
被使用,即使我有一个复合索引start
和stop
。 有没有一种方法来创建我提到的三个问题较为充足的指标?
我想不久的地理空间索引,但我没有使用过,但。 我也只需要它的一维版本。