要有效地做到這一點,你必須通過文字索引你的文字。
換句話說,題爲MapReduce: Simplified Data Processing on Large Clusters
將被映射到以下項對象foo
:
MapReduce: Simplified Data Processing on Large Clusters
,
Simplified Data Processing on Large Clusters
,
Data Processing on Large Clusters
,
Processing on Large Clusters
,
on Large Clusters
,
Large Clusters
,
Clusters
。
如果文本太長,可以將鍵截斷爲給定數量的字符(如24
)。
下面是CouchDB的一個代碼示例:
function map(o) {
const SIZE = 24;
function format(text, begin) {
return text.substr(begin, SIZE).toLowerCase();
}
const WORD_MATCHER = /\S+/g;
while ((match = WORD_MATCHER.exec(o.title))) {
var begin = match.index;
emit(format(o.title, begin), {position: begin});
}
}
然後,如果你問data process
和data processZ
之間的鍵,你會得到:
{"key": "data processing on large clusters", "id": "foo", "value":{"position": 22}}