问题描述
我试图了解尝试按关键字排序和按小写规范器排序时的性能差异。 我在 stackoverflow 上遇到了这个答案 - ElasticSearch normalizer performance impact
我知道分析器逻辑将在索引和查询时应用,但有没有办法衡量差异?
以下是我的索引模板:
"test_template": {
"order": 0,"index_patterns": [
"test*"
],"settings": {
"index": {
"analysis": {
"normalizer": {
"lowercase_normalizer": {
"filter": [
"lowercase"
],"type": "custom"
}
}
},"number_of_shards": "6","number_of_replicas": "3"
}
},"mappings": {
"Metadata": {
"properties": {
"Field1": {
"type": "text","fields": {
"keyword": {
"type": "keyword","ignore_above": 256
},"lowercase": {
"type": "keyword","normalizer": "lowercase_normalizer"
}
}
},"First2": {
"type": "text","normalizer": "lowercase_normalizer"
}
}
}
}
},"aliases": {}
}
以下是我用来理解差异的排序查询:
- 基于关键字
GET test_dev/_search
{
"sort" : [
{
"Field1.keyword" :
{
"order" : "desc"
}
}
],"size": 1000
}
以上查询返回:
{
"took": 51,"timed_out": false,"_shards": {
"total": 6,"successful": 6,"skipped": 0,"Failed": 0
},"hits": {
"total": 839049,"max_score": null,"hits": [
{ ...... (results)
- 基于小写规范化器:
GET test_dev/_search
{
"sort" : [
{
"Field2.lowercase" :
{
"order" : "desc"
}
}
],"size": 1000
}
结果:
{
"took": 292,......(records)
我认为 "took": (value)
将能够显示差异,因为分析器逻辑也将在查询期间应用,但似乎数字一直在变化,有时 keyword
需要更长的时间排序而不是 lowercase_normaliser
排序。
谁能解释为什么基于关键字的排序比lowercase_normaliser排序更有效?我也看出区别了吗?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)