【发布时间】:2016-11-10 23:15:09
【问题描述】:
我正在开展一个项目,我大量使用 Elasticsearch 并利用 moreLikeThis 查询来实现一些功能。 MLT 查询的官方文档说明如下:
为了加快分析速度,将术语向量存储在 索引时间,但以磁盘使用为代价。
在**工作原理*部分。现在的想法是调整映射以存储预先计算的术语向量。问题是,从文档中似乎不清楚应该如何做到这一点。一方面,在MLT 文档中,他们提供了如下所示的示例映射:
curl -s -XPUT 'http://localhost:9200/imdb/' -d '{
"mappings": {
"movies": {
"properties": {
"title": {
"type": "string",
"term_vector": "yes"
},
"description": {
"type": "string"
},
"tags": {
"type": "string",
"fields" : {
"raw": {
"type" : "string",
"index" : "not_analyzed",
"term_vector" : "yes"
}
}
}
}
}
}
}
另一方面,在 Term Vectors documentation 中,它们在 示例 1 部分中提供了一个如下所示的映射
curl -s -XPUT 'http://localhost:9200/twitter/' -d '{
"mappings": {
"tweet": {
"properties": {
"text": {
"type": "string",
"term_vector": "with_positions_offsets_payloads",
"store" : true,
"index_analyzer" : "fulltext_analyzer"
},
"fullname": {
"type": "string",
"term_vector": "with_positions_offsets_payloads",
"index_analyzer" : "fulltext_analyzer"
}
}
}
....
这应该是create an index that stores term vectors, payloads etc.
现在的问题是:应该使用哪个映射?这是文档中的缺陷还是我遗漏了什么?
【问题讨论】:
-
第二个例子也只是存储额外的信息。我想这对你来说应该足够了,只需使用“是”
-
但是这种行为是否以某种方式记录在某处?就像“yes”做一些事情而“with_positions_offsets_payloads”做更多?
标签: elasticsearch morelikethis