我们有一个带有2台服务器的ES集群,每台服务器拥有5个索引分片。 (5个碎片/ 1个复制品) 该指数包含50 Mio.包含产品数据的文档,导致70GB的数据库大小。 两台服务器都有8个内核,32 GB RAM和SSD存储。
使用多个“query_string”查询运行查询非常快(最长0.5秒),但是一旦我使用“fuzzy_like_this”查询,一些查询最多需要30秒。 查询如下所示:
{
"query": {
"bool": {
"must": [
{
"range": {
"price": {
"from": 1
}
}
},
{
"bool": {
"should": [
{
"fuzzy_like_this": {
"boost": 1,
"analyzer": "german",
"min_similarity": 0.5,
"like_text": "Playstation",
"prefix_length": 0,
"ignore_tf": false,
"max_query_terms": 5
}
},
{
"query_string": {
"query": "Playstation",
"default_operator": "AND",
"analyzer": "german"
}
}
]
}
}
]
}
},
"from": 0,
"size": 50
}
是否有可能加快速度?