Elasticsearch -也基于条件检索特定字段

wnrlj8wa  于 2023-06-29  发布在  ElasticSearch
关注(0)|答案(1)|浏览(121)

我们在Elastic中存储来自外部系统的信息,因为JSON结构非常动态,我们希望能够对其执行搜索。我的要求是根据从Elastic检索的数据创建一个Excel模板。
现在我知道我可以在API查询体中使用**_sourcefields**选项,根据JSON路径仅检索某些元素,但是否有方法也提供条件。我所说的条件是,例如,我们有多语言字段(见下文),它们具有相同的JSON路径,但我只想检索德语值。

"functionalNames": [
            {
                "languageCode": "de-DE",
                "value": "DE value"
            },
            {
                "languageCode": "fr-BE",
                "value": "FR value"
            },
            {
                "languageCode": "nl-BE",
                "value": "NL value"
            }
        ]

此外,我们还想做一些计算,如转换厘米米,克公斤等。我想这可以使用script_fields选项来完成,但我必须对此进行更多检查。
谢谢
我使用了这样的东西:

{
    "query": {
        "ids": {
            "values": [
                "id1",
                "id2",
                "id3",
                "id4"
            ]
        }
    },
    "fields": [
        "functionalNames.value",
        "JSONAttributePath1",
        "JSONAttributePath2"
    ],
    "_source": false
}

但我不知道如何申请条件。如果我在query参数中使用“language-code = de-DE”,我担心一些在索引中甚至没有此数据的结果可能无法检索,因此这不是一个选项。

7nbnzgx9

7nbnzgx91#

如果我正确理解了你的问题,你正在寻找执行查询,因为你提到应用 * 条件 *。
以下是如何搜索德语文档的示例:

POST my-index-name/_search
{
    "query": {
        "match": {
            "languageCode": "de-DE"
        }
    }
}

相关问题