对于我的硕士论文,我使用 Elasticsearch 来衡量句子、段落和文档对索引其余部分的重要性。我使用了 3 个不同的索引来实现快速查询。一切正常,但我想评估是否可以对嵌套对象或父子关系做同样的事情。
在这里,我尝试使用嵌套对象设置和查询重要术语:
PUT /test_nested
{
"settings": {
"analysis": {
"filter": {
"german_stop": {
"type": "stop",
"stopwords": "_german_"
},
"german_keywords": {
"type": "keyword_marker",
"keywords": [""]
},
"german_stemmer": {
"type": "stemmer",
"language": "light_german"
},
"shingle_bigram": {
"type": "shingle",
"max_shingle_size": 2,
"min_shingle_size": 2,
"output_unigrams": false
},
"shingle_trigram": {
"type": "shingle",
"max_shingle_size": 3,
"min_shingle_size": 3,
"output_unigrams": false
}
},
"analyzer": {
"unigram": {
"tokenizer": "standard",
"filter": [
"lowercase",
"german_stop",
"german_keywords",
"german_normalization",
"german_stemmer"
]
}
}
}
},
"mappings": {
"document": {
"properties": {
"tags" : {
"type" : "string",
"analyzer" : "unigram",
"index" : "analyzed"
},
"publishDate" : {
"type" : "date"
},
"paragraphs": {
"type": "nested",
"properties": {
"sentences" :{
"type" : "nested",
"properties": {
"textBody": {
"type": "string",
"analyzer" : "unigram",
"index" : "analyzed",
"term_vector" : "with_positions_offsets",
"term_statistics" : true
}
}
}
}
}
}
}
}
}
和2个测试文件:
PUT /test_nested/document/1
{
"tags" : "DerSpiegel, Frankfurt",
"publishDate" : "2005-12-11",
"paragraphs" : [
{
"sentences" : [
{"textBody" : "Größter anzunehmender Einschlag"},
{"textBody": "Es gibt ziemlich blöde Vorurteile über Fußball."},
{"textBody": "Eines lautet: Der Ball ist rund."},
{"textBody": "Freitagabend, Messehalle 1 in Leipzig, die Auslosung zur Fußballweltmeisterschaft: Der Ball ist gar nicht rund."}
]
}
]
}
PUT /test_nested/document/2
{
"tags" : "DerSpiegel, Frankfurt",
"publishDate" : "2005-12-11",
"paragraphs" : [
{
"sentences" : [
{"textBody" : "Dafür aber kann man mit so einem Ball auch viel mehr anstellen als mit diesen runden, kleinen Dingern, die früher aus Leder waren und heute aus Polyurethan sind."},
{"textBody": "Zum Beispiel die gigantischste Fußball-WM-Auslosungsshow aller Zeiten zelebrieren."},
{"textBody": "Eine Show, die zum globalen Fußball passt."},
{"textBody": "Hauptsache riesig - wen interessiert schon rund?"}
]
},
{
"sentences" : [
{"textBody" : "Mit der Verteilung der 32 Teams auf ihre acht Gruppen bekamen die Deutschen damit erstmals auch einen Vorgeschmack auf das Gewicht und die Wucht der WM im nächsten Jahr." },
{"textBody" : "Mag die Nachricht des Abends auch gewesen sein, dass Deutschland gegen Costa Rica, Polen und Ecuador spielt und dass im Achtelfinale die Engländer drohen, die Botschaft des Spektakels von Leipzig heißt, dass die WM mit einer Opulenz über das Land kommen wird, von der sich die Deutschen bisher noch gar keine rechte Vorstellung gemacht haben." },
{"textBody" : "Die Stimme von 1974 gehörte Wolfhard Kuhlins, Sportchef des HR, und das Weltereignis war nach 45 Minuten ausgestrahlt, nicht nach 150." },
{"textBody" : "Zwar kam auch schon Franz Beckenbauer zum Interview ins Studio, aber selbst der Kaiser war noch nicht, was er mal wurde: Zum schwarzen Anzug trug er weiße Socken." }
]
}
]
}
不幸的是,我没有得到以下查询的任何重要术语:
GET test_nested/document/_search?search_type=count
{
"query" : {
"match_all" :{}
},
"aggs" :{
"sentences":{
"nested" :{
"path" : "paragraphs.sentences"
}
},
"aggs" : {
"significant_terms" : {
"chi_square": {},
"field" : "paragraphs.sentences.textBody"
}
}
}
}