我在我的elasticsearch代表供应商的文件,每个文件是一个供应商,每个供应商都有分支机构,以及,它看起来像这样:
{
"id": 1,
"supplierName": "John Flower Shop",
"supplierAddress": "107 main st, Los Angeles",
"branches": [
{
"branchId": 11,
"branchName": "John Flower Shop New York",
"branchAddress": "34 5th Ave, New York"
},
{
"branchId": 12,
"branchName": "John Flower Shop Miami",
"branchAddress": "56 ragnar st, Miami"
}
]
}
我目前公开的API,允许在搜索领域:supplierName,supplierAddress,BRANCHNAME和branchAddress。
用例是在我的网站的搜索框,执行到后端的呼叫,和PUR结果在下拉列表供用户选择供应商。
我的问题是,给出的示例文件上面,如果你搜索“约翰花店迈阿密”,答案将是整个文档,究竟会呈现是顶级供应商名称。
我要的是呈现“约翰花店迈阿密”,和IM不知道如何去理解什么结果的一部分就是点击搜索....
也有人有之前做这样的事情?
在处理关系elasticsearch是一些工作,但你可以做到这一点。我建议你阅读ES指南的章handling relationships有大局。
然后,我的建议是索引你的分支机构nested documents。因此,他们将被存储在索引文件不同。
它会要求你改变你的查询语法使用nested queries,可以是在一个痛苦......但是作为交换,你将与inner_hits functionality被授予。
它可以让你知道哪些子文档(文件嵌套)符合您查询。