elasticsearch 中,能否以数组的形式存储并只搜索数组特定的值?

2019-04-22 13:34:20 +08:00
 kisshere

现在有一批标签,每个标签的名称对应其标签 id,如下所示:

<?php
$image_tags=
[
    [
    	'image_tag_id'=>1513,
        'image_tag_name'=>'red flower'
    ],
    [
    	'image_tag_id'=>534,
        'image_tag_name'=>'brown cat'
    ],
    [
    	'image_tag_id'=>9677,
        'image_tag_name'=>'grass'
    ],
    [
    	'image_tag_id'=>32,
        'image_tag_name'=>'sleeping'
    ]
]
?>

现在我该在 elasticsearch 中以哪种 datatype 的形式存储该$image_tags,可以让我在查询“ image_tag_name ”的时候,提取出对应的“ image_tag_id ”,即只索引“ image_tag_name ”而不索引“ image_tag_id ”?

1258 次点击
所在节点    程序员
1 条回复
MintZX
2019-04-23 02:40:19 +08:00
可以
mapping 的时候用
"type": "nested"

query 的时候用
"match": {
"image_tags.image_tag_name": "sleeping, grass"
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX