elasticsearch 如何查询elasticsearch以获取嵌套属性
我对elasticsearch非常陌生,正在尝试为以下json数据组合一个查询(在Kibana中): { "RepoCount": 2, "ThirdPartyRepoCount": 1, "RepoReadMeCount": 1, "date": "2019-10-25 12:02:41", "projects": [ { "key": "GA", "id": 884, "name": "Company Archive", "description": "An archive for old dormant or abandoned git projects", "type": "NORMAL", "Repos": [ { "id": 28, "name": "address", "scmId": "git", "NumberFiles": 319, "HasReadMe": false, "GitRepoUrl": "blablabla.git", "LastCommitDate": "08/16/2013", }, { "id": 364, "name": "api", "scmId": "git", "NumberFiles": 377, "HasReadMe": false, "GitRepoUrl": "blablabla.git", "LastCommitDate": "07/01/2014", } ] } ] } { “重新计数”:2, “第三方报告”:1, “RepoReadMeCount”:1, “日期”:“2019-10-25 12:02:41”, “项目”:[ { “密钥”:“GA”, “id”:884, “名称”:“公司档案”, “说明”:“旧的休眠或废弃git项目的存档”, “类型”:“正常”, “回购协议”:[ { “id”:28, “姓名”:“地址”, “scmId”:“git”, “数字文件”:319, “HasReadMe”:错误, “GitRepoUrl”:“blabla.git”, “上次提交日期”:“2013年8月16日”, }, { “id”:364, “名称”:“api”, “scmId”:“git”, “数字文件”:377, “HasReadMe”:错误, “GitRepoUrl”:“blabla.git”, “最后提交日期”:“2014年1月7日”, } ] } ] } 我想编写查询,以获取项目和“回购”下的数据。 我已经将json数据导入到名为
elasticsearch 如何查询elasticsearch以获取嵌套属性,
elasticsearch,kibana,
elasticsearch,Kibana,我对elasticsearch非常陌生,正在尝试为以下json数据组合一个查询(在Kibana中): { "RepoCount": 2, "ThirdPartyRepoCount": 1, "RepoReadMeCount": 1, "date": "2019-10-25 12:02:41", "projects": [ { "key": "GA", "id": 884,
gitrepos
的索引中,并成功创建了一个索引模式。我尝试过如下查询:
获取gitrepos/projects/\u搜索
GET gitrepos/projects/REPOS/\u search
但是没有运气。
我唯一能去工作的就是:获取gitrepos
这只会让我找回一切。
我想深入研究,但上述方法不起作用。
这是如何实现的?您的索引名为
gitrepos
,因此您的搜索端点是GET/gitrepos/\u search
。索引中的每个文档都与上面的文档类似;您可以返回具有符合某些条件的回购的文档
GET gitrepos/_search
{
"query": {
"bool": {
"must": [
{ "match": { "projects.Repos.GitRepoUrl": "blablabla.git" }}
]
}
}
}
对于要在单个文档中的多个字段上进行匹配的更复杂的搜索,需要使用
如果您想直接搜索单个回购文件,您需要在各自的索引中为这些元素编制索引。您的索引名为
gitrepos
,因此您的搜索端点是GET/gitrepos/\u search
。索引中的每个文档都与上面的文档类似;您可以返回具有符合某些条件的回购的文档
GET gitrepos/_search
{
"query": {
"bool": {
"must": [
{ "match": { "projects.Repos.GitRepoUrl": "blablabla.git" }}
]
}
}
}
对于要在单个文档中的多个字段上进行匹配的更复杂的搜索,需要使用
如果您想直接搜索单个回购文件,您需要在各自的索引中为这些元素编制索引。因此我的端点保持相当基本,允许我向下搜索的是匹配或术语查询?搜索端点是索引,而不是索引中的子文档。您将使用Elasticsearch查询语言查询这些子文档中的特定术语。Elasticsearch将返回每个匹配项的完整文档,除非您对其进行筛选。在我的情况下,它一直在返回完整文档,这并不完全是我想要的。在我看来,您可能希望使用您的个人git repo作为文档来重新索引您的数据。你可能可以让你现有的数据工作(ish),但这将是相当多的工作。谢谢,这是我昨天做的。每个“GitRepo”现在都是它自己的文档。因此我的端点保持相当基本,允许我向下搜索的是匹配或术语查询?搜索端点是索引,而不是索引中的子文档。您将使用Elasticsearch查询语言查询这些子文档中的特定术语。Elasticsearch将返回每个匹配项的完整文档,除非您对其进行筛选。在我的情况下,它一直在返回完整文档,这并不完全是我想要的。在我看来,您可能希望使用您的个人git repo作为文档来重新索引您的数据。你可能可以让你现有的数据工作(ish),但这将是相当多的工作。谢谢,这是我昨天做的。每个“GitRepo”现在都是自己的文档。