gpt4 book ai didi

elasticsearch - ElasticSearch-术语聚合按空格分隔

转载 作者:行者123 更新时间:2023-12-03 00:54:22 28 4
gpt4 key购买 nike

我有一堆 flex 搜索文档,其中包含有关招聘广告的信息。我正在尝试聚合attributes.Title字段,以从职位发布中提取“经验”实例的数量。例如Junior,Senior,Leader等。我得到的是与标题整体匹配的存储桶,而不是标题字段中的每个单词。例如“初级Java开发人员”,“高级.NET分析师”等。

我该如何告诉 flex 搜索根据标题中的每个单词拆分聚合,而不是匹配整个字段的值。

稍后,我想扩展查询以提取“技能级别”和“角色”,但是如果存储桶包含字段中的所有单词,只要它们被分成单独的存储桶,也应该没问题。

当前查询:

GET /jobs/_search
{
"query": {
"simple_query_string" : {
"query": "Java",
"fields": ["attributes.Title"]
}
},
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "attributes.Title.keyword"
}
}
}
}

不需要的输出:
{
...
"hits": {
"total": 63,
"max_score": 0,
"hits": []
},
"aggregations": {
"group_by_state": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 14,
"buckets": [{
"key": "Junior Java Tester",
"doc_count": 6
},{
"key": "Senior Java Lead",
"doc_count": 6
},{
"key": "Intern Java Tester",
"doc_count": 5
},
...
]
}
}
}

所需的输出:
{
...
"hits": {
"total": 63,
"max_score": 0,
"hits": []
},
"aggregations": {
"group_by_state": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 14,
"buckets": [{
"key": "Junior",
"doc_count": 12
},{
"key": "Senior",
"doc_count": 8
},{
"key": "Tester",
"doc_count": 5
},{
"key": "Intern",
"doc_count": 5
},{
"key": "Analyst",
"doc_count": 5
},
...
]
}
}
}

最佳答案

我推断您的映射类型为keyword,因为您聚合了一个名为"attributes.Title.keyword"的字段。 keyword映射不会标记您的字符串,因此在聚合期间,它将整个字符串视为唯一键。

您想要将标题字段的映射更新为type: "text"。我不会将其称为title.keyword,而是类似title.analyzed的东西-如果您未指定分析器,Elasticsearch将应用standard analyzer,这应该足以让您入门。如果只希望标题由空格(而不是词根和其他一些东西)分解,则也可以使用whitespace analyzer。您的汇总中会有很多其他字词,但是我假设您正在寻找这些共享的经验修饰符标记,并且基于频率,它们将升至最高。

如果您使用的是5.x,请确保从text fields aren't available for aggregation by default开始设置“fielddata:true”。

映射:

"properties" : {
"attributes" : {
"properties" : {
"title" : {
"properties" : {
"keyword" : { "type" : "keyword" },
"analyzed" : { "type" : "text", "analyzer" : "whitespace", "fielddata" : true }
}
}
}
}
}

关于elasticsearch - ElasticSearch-术语聚合按空格分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com