我的数据格式如下:
[
{
'id': 1,
'name': '户主姓名',
'reason': '致贫原因',
'detail': '家庭情况',
'members': [
{'name': '张 XX', 'card':'身份证号 1', 'age': 20, 'gender':'男'},
{'name': '张 YY', 'card':'身份证号 2', 'age': 18, 'gender':'男'},
{'name': '张 ZZ', 'card':'身份证号 3', 'age': 5, 'gender':'女'}
],
},
{
'id': 2,
'name': '户主姓名',
'reason': '致贫原因',
'detail': '家庭情况',
'members': [
{'name': '张 XX', 'card':'身份证号 1', 'age': 20, 'gender':'男'},
{'name': '张 YY', 'card':'身份证号 2', 'age': 18, 'gender':'男'},
{'name': '张 ZZ', 'card':'身份证号 3', 'age': 5, 'gender':'女'}
],
},
{
'id': 3,
'name': '户主姓名',
'reason': '致贫原因',
'detail': '家庭情况',
'members': [
{'name': '张 XX', 'card':'身份证号 1', 'age': 20, 'gender':'男'},
{'name': '张 YY', 'card':'身份证号 2', 'age': 18, 'gender':'男'},
{'name': '张 ZZ', 'card':'身份证号 3', 'age': 5, 'gender':'女'}
],
}
...
]
需要支持这样的查询:找小于 7 岁的,女孩, detail 关键词中含有心脏病的人。
本来想用阿里云搜索的,发现不支持 json list 的字段,所以想用 elasticsearch 。
1
ayang23 2016 年 8 月 18 日
最新稳定版本就好
|
2
goofansu 2016 年 8 月 18 日 via iPhone
这个要在 mapping 里面设 members 为 nested ,否则查出来是错的
|
3
knightdf 2016 年 8 月 18 日
members 为 object 类型就可以了
|
4
66beta 2016 年 8 月 18 日
es 的问题好像是扩展不兼容新版本,要看你用的扩展
|
6
billlee 2016 年 8 月 18 日
然而 elasticSearch 的列表匹配应该会返回「有一个小于 7 岁的男孩」 AND 「有一个女性」 AND 「 detail 包含『心脏病』」的家庭
嗯, elasticSearch 的索引其实是把列表 concat 起来的。 |
7
ligyxy 2016 年 8 月 18 日 via Android
|
8
DravenJohnson 2016 年 8 月 19 日
2.3 版本挺好用的
|