10,431
社区成员




GET blog/_search
{
"query": {
"match": {
"tags": {
"query": "数学"
}
}
}
}
# 返回
{
"_index" : "blog",
"_type" : "_doc",
"_id" : "4mVt8IEBjnqWAWJWaCpF",
"_score" : 0.31713706,
"_source" : {
"tags" : [
"数学",
"化学"
]
}
},
{
"_index" : "blog",
"_type" : "_doc",
"_id" : "4GVt8IEBjnqWAWJWFCqt",
"_score" : 0.26706278,
"_source" : {
"tags" : [
"数学",
"语文"
]
}
}
第一个文档匹配到了数组的第一个元素【数学】和第二个元素的【学】,第二个匹配到了数组的第一个元素【数学】,现在想用匹配度的最高的当成文档的score,比如第一个文档用匹配到的【数学】的score当成文档的score,请问可以这样么
改了下结构,改为nested
PUT blog
{
"mappings": {
"properties": {
"tags": {
"type": "nested"
}
}
}
}
POST blog/_doc
{
"tags": [
{"name": "数学"},
{"name": "化学"}
]
}
POST blog/_doc
{
"tags": [
{"name": "数学"},
{"name": "语文"}
]
}
GET blog/_search
{
"query": {
"nested": {
"path": "tags",
"query": {
"match": {
"tags.name": "数学"
}
},
"score_mode": "max"
}
}
}