如何在 Python 中将 query_string(Lucene 语法)与 Elasticsearch DSL 一起使用?
How to use query_string (Lucene Syntax) with Elasticsearch DSL in Python?
我想将 query_string(Lucene 语法)搜索与 Elasticsearch DSL 一起用于 Python。
不幸的是,第一行不像第二行那样简单:
s = Search(using=client, index='abc').query("query_string", doctext=searchstr).highlight('doctext', fragment_size=200)
s = Search(using=client, index='abc').query("match", doctext=searchstr).highlight('doctext', fragment_size=200)
我可以为 query_string 使用 Elasticsearch DSL 库的哪个函数?
您可以使用 query_string
,但您需要使用它在 documentation 中定义的正确参数:
s = Search(using=client, index='abc')
s = s.query("query_string", query=searchstr, default_field="doctext") # note the query here
s = s.highlight('doctext', fragment_size=200)
另外请注意,使用 query_string
作为用户提供的输入可能是危险的,因为没有办法限制用户在查询中可以做什么,他们可能会查询任何字段或制作一个超级昂贵的执行成本很高的查询。
希望对您有所帮助!
我想将 query_string(Lucene 语法)搜索与 Elasticsearch DSL 一起用于 Python。 不幸的是,第一行不像第二行那样简单:
s = Search(using=client, index='abc').query("query_string", doctext=searchstr).highlight('doctext', fragment_size=200)
s = Search(using=client, index='abc').query("match", doctext=searchstr).highlight('doctext', fragment_size=200)
我可以为 query_string 使用 Elasticsearch DSL 库的哪个函数?
您可以使用 query_string
,但您需要使用它在 documentation 中定义的正确参数:
s = Search(using=client, index='abc')
s = s.query("query_string", query=searchstr, default_field="doctext") # note the query here
s = s.highlight('doctext', fragment_size=200)
另外请注意,使用 query_string
作为用户提供的输入可能是危险的,因为没有办法限制用户在查询中可以做什么,他们可能会查询任何字段或制作一个超级昂贵的执行成本很高的查询。
希望对您有所帮助!