如何在输出存储桶中添加名为"agency_name"的新密钥.
我正在运行聚合代码,如下所示
{
"aggs": {
"name": {
"terms": {
"field": "agency_code"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将得出结论
"aggregations": {
"name": {
"doc_count_error_upper_bound": 130,
"sum_other_doc_count": 39921,
"buckets": [
{
"key": "1000",
"doc_count": 105163
},
{
"key": "2100",
"doc_count": 43006
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
在显示时我需要显示代理商名称,代码和doc_count
如何修改聚合查询以便我可以获得以下格式.我是ElasticSearch的新手,不知道如何解决这个问题
"aggregations": {
"name": {
"doc_count_error_upper_bound": 130,
"sum_other_doc_count": 39921,
"buckets": [
{
"key": "1000",
"doc_count": 105163,
"agency_name": 'Agent 1'
},
{
"key": "2100",
"doc_count": 43006,
"agency_name": 'Agent 2'
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
ElasticSearch中的示例数据(分析字段)
{
"_index": "feeds",
"_type": "news", …Run Code Online (Sandbox Code Playgroud) 使用 Microsoft 的 Visual Studio Code,如何在侧边栏中仅显示某些文件和文件模式并排除所有其他文件?
我想显示.yml文件以实现仅编辑它们而不是滚动浏览所有文件。
我尝试过这个,但没有成功。
"files.exclude": {
"**/*": true,
"**/*.yml": false
}
Run Code Online (Sandbox Code Playgroud)
PS 我知道有一种方法可以隐藏某些文件,但我只想显示特定文件。我不介意使用扩展来实现这一点。
我正在尝试将以下JSON输入发送到elasticsearch,但我正在获取解析器错误.
这是JSON输入
{
"chassisNumber": "654321",
"position": "40.480143, -3.688960",
"issue": "Position",
"timestamp": "2016-07-15T15:29:50+02:00[Europe/Paris]"
}
Run Code Online (Sandbox Code Playgroud)
索引定义
{
"mappings":{
"vehicle":{
"properties":{
"vehicle":{
"type":"string"
},
"position":{
"type": "geo_point"
},
"issue":{
"type":"string"
},
"timestamp":{
"type":"date",
"format":"YYYY-MM-DD'T'HH:mm:ssZ"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及与"timestamp"字段相关的错误.
"reason": "Invalid format: \"2016-07-15T15:29:50+02:00[Europe/Paris]\" is malformed at \"[Europe/Paris]\""
Run Code Online (Sandbox Code Playgroud)
我尝试了一些日期格式,但没有人成功.任何人都可以帮我定义正确的格式来解析elasticsearch中的"timestamp"字段吗?
谢谢!!!
我有两个索引 - 一个用于Application模型,另一个用于Databases模型(多对多关系)。
每个文档都被非规范化以包含来自另一个模型的属性
Application
|_ vendor_name
|_ databases
|_ db_1
|_ db_2
Database
|_ database_applications
|_ app_1
|_vendor_name
|_ app_2
|_ vendor_name
Run Code Online (Sandbox Code Playgroud)
对供应商名称执行多索引搜索 - 似乎我从两个索引中都得到了正确的结果。
挑战在 vendor_name 字段上正确聚合
当结果仅来自数据库时,使用以下聚合似乎有效。我也尝试过,field: '*vendor_name'但似乎不起作用。
我错过了什么?模型应该改变吗?
aggregation:
vendor_name: {
terms: {
field: "database_applications.vendor_name"
}
}
Run Code Online (Sandbox Code Playgroud)
根据@Andrie-Stefan - 这是两个索引映射的更准确表示(缩写为简短):
数据库
Application
|_ vendor_name
|_ databases
|_ db_1
|_ db_2
Database
|_ database_applications
|_ app_1
|_vendor_name
|_ app_2
|_ vendor_name
Run Code Online (Sandbox Code Playgroud)
应用
{
"applications": {
"aliases": {},
"mappings": {
"application": …Run Code Online (Sandbox Code Playgroud)我有一个用例,其中我有数据
{
name: "John",
parentid": "1234",
filter: {a: '1', b: '3', c: '4'}
},
{
name: "Tim",
parentid": "2222",
filter: {a: '2', b: '1', c: '4'}
},
{
name: "Mary",
parentid": "1234",
filter: {a: '1', b: '3', c: '5'}
},
{
name: "Tom",
parentid": "2222",
filter: {a: '1', b: '3', c: '1'}
}
Run Code Online (Sandbox Code Playgroud)
预期成绩:
bucket:[{
key: "2222",
hits: [{
name: "Tom" ...
},
{
name: "Tim" ...
}]
},
{
key: "1234",
hits: [{
name: "John" ...
},
{
name: …Run Code Online (Sandbox Code Playgroud) 我一直在玩 ElasticSearch,在进行聚合时发现了一个问题。
我有两个端点,/A和/B。在第一个我有第二个的父母。因此,B 中的一个或多个对象必须属于 A 中的一个对象。因此,B 中的对象具有属性“parentId”,其父索引由 ElasticSearch 生成。
我想通过 B 的子属性过滤 A 中的父项。为了做到这一点,我首先按属性过滤 B 中的子项并获取其唯一的父 ID,稍后我将使用它来获取父 ID。
我发送这个请求:
POST http://localhost:9200/test/B/_search
{
"query": {
"query_string": {
"default_field": "name",
"query": "derp2*"
}
},
"aggregations": {
"ids": {
"terms": {
"field": "parentId"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
并得到这个回应:
{
"took": 91,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "test",
"_type": "child",
"_id": "AU_fjH5u40Hx1Kh6rfQG",
"_score": 1, …Run Code Online (Sandbox Code Playgroud) 根据官方文档Update API-Upserts,可以使用scripted_upsert该脚本处理脚本中的更新(对于现有文档)或插入(对于新文档)表格。问题是它们从不显示脚本应如何执行此操作。在爪哇-更新API没有对ScriptUpsert用途的任何信息。
这是我正在使用的代码:
//My function to build and use the upsert
public void scriptedUpsert(String key, String parent, String scriptSource, Map<String, ? extends Object> parameters) {
Script script = new Script(scriptSource, ScriptType.INLINE, null, parameters);
UpdateRequest request = new UpdateRequest(index, type, key);
request.scriptedUpsert(true);
request.script(script);
if (parent != null) {
request.parent(parent);
}
this.bulkProcessor.add(request);
}
//A test call to validate the function
String scriptSource = "if (!ctx._source.hasProperty(\"numbers\")) {ctx._source.numbers=[]}";
Map<String, List<Integer>> parameters = new HashMap<>();
List<Integer> numbers = new …Run Code Online (Sandbox Code Playgroud) 我在elasticsearch(1.5)中有文档,如下所示:
{
"gender": [
{
"name": "unknown",
"value": 12
},
{
"name": "male",
"value": 89
},
{
"name": "female",
"value": 84
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想获得每个性别名称的所有值的总和.像那样:
{
"buckets": [
{
"key": "unknown",
"doc_count": 112,
"gender_a": {
"value": 462
}
},
{
"key": "male",
"doc_count": 107,
"gender_a": {
"value": 438
}
},
{
"key": "female",
"doc_count": 36,
"gender_a": {
"value": 186
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我试过这个查询:
{
"aggs": {
"gender_name": {
"terms": {
"field": "gender.name"
},
"aggs": {
"gender_sum": {
"sum": …Run Code Online (Sandbox Code Playgroud)