这是一个简单有效的 Elasticsearch 查询。我必须使用 Elasticsearch dsl 模块将其转换为 python 代码。
GET indexforproject/project/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"term": {
"project_language.languageName.raw": "nodejs"
}
}
}
}
}
这是我用过的
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search,Q,query,F
client = Elasticsearch([{'host':'blrkec248770d','port':'9200'}])
temp="Internal"
s=Search(using=client, index="indexforproject").filter("term","project_language.languageName.raw"="Internal")
body={
'query':"PHP and node.js",
'filters':[{'name':"languages",'values':"[python,PHP,angular]"} ]
}
response=s.execute()
for hit in response:
print hit.title
最佳答案
我终于明白了。下面是代码:
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search,Q,query,F
client = Elasticsearch([{'host':'blrkec248770d','port':'9200'}])
d={'project_language.languageName.raw':'nodejs'}
s=Search(using=client, index="indexforproject").filter('term',**d)
body={
'query':"PHP and node.js",
'filters':[{'name':"languages",'values':"[python,PHP,angular]"} ]
}
#print s.to_dict()
response=s.execute()
for hit in response:
print hit.title
关于python - 在 python 中将 Elasticsearch 查询转换为 Elasticsearch-dsl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179142/