我正在一个项目中,我需要在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)