我有一个应用程序,我使用elasticsearch作为我的搜索引擎,我有一个问题,我需要帮助。
在我的搜索查询中,我想获得一个包含引用类型的文档,值为">NVE";和参考值,值为">8005267293">
下面是我想要得到的文档的一个片段,看起来像这样
.......
"addresses": [],
"references": [
{
"type": "FBA",
"value": "0000765855"
},
{
"type": "GEN",
"value": "0082467914"
},
{
"type": "GEN",
"value": "0000765855"
},
{
"type": "GEN",
"value": "0006418559"
},
{
"type": "NVE",
"value": "8005267293"
},
{
"type": "NVE",
"value": "000000008005267291"
}
],
........
我的问题是我的查询实际上返回文档如预期的,但如果我改变的值references。type">";FBA或">,它仍然返回文档但我希望它只在引用。type时返回文档是">NVE";和references.value是8005267293
对于我的搜索查询,这是我使用的
{
"query": {
"bool": {
"must": [
{
"bool": {
"must": [{
"match": {
"references.type": "NVE"
}
}]
}
},
{
"bool": {
"must": [
{
"wildcard": {
"references.value": "*8005267293*"
}
}]
}
}]
}
}
}
任何帮助都会很感激,谢谢
您必须使用默认映射或定义的references
字段作为对象数据类型,这会丢失官方文档中提到的属性之间的关系。
您需要为references
字段使用嵌套的数据类型,并使用nested
查询来获得预期的结果。