X-Pack VS.在Elasticsearch中查询DSL。为什么后者比前者更好?

时间:2019-07-25 15:09:22

标签: python sql database elasticsearch

我正在一个项目中,我需要在Python_3.x中自动执行Elasticsearch Query-DSL。以前的X-Pack用于同一项目,但后来的业务和工程要求要求完全删除X-Pack。 Elasticsearch的Query-DSL已得到适当实施。

我的问题是:

1)什么是ES中的X-Pack?

2)为什么Query-DSL比X-Pack更受青睐?

X-PACK格式

from keras import backend as K
import tensorflow as tf
jobs = 2 # it means number of cores
config = tf.ConfigProto(intra_op_parallelism_threads=jobs,
                         inter_op_parallelism_threads=jobs,
                         allow_soft_placement=True,
                         device_count={'CPU': jobs})
session = tf.Session(config=config)
K.set_session(session)

QUERY-DSL格式:

            sql_condition = ''  # empty str
            count=0

            dataFrame = pd.DataFrame.from_dict(search_data['filters'])
            for index, row in dataFrame.iterrows():
                if (count <= dataFrame.shape[0] and count != 0):
                    if count != 0:
                        sql_condition = sql_condition + "OR" + "(match('{0}','{1}'))".format('id', row['id'])
                        count += 1

                    else:
                        sql_condition = sql_condition + "OR" + "(match('{0}', '{1}'))".format('id', row['id']) + " )) "
                        count += 1

                else:
                    print("MatchingQuery")
                    sql_condition = sql_condition + "(match('{0}', '{1}'))".format('id', row['id'])
                    count += 1


            query_XPack = "select {0} from {1} where {2}".format(table_fields, utils.config['es']['index_name'], sql_condition)

0 个答案:

没有答案