- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用自定义查询 DSL 来使用 pyes 库获取结果。我有一个在使用命令行时可以使用的查询 DSL
curl -XGET localhost:9200/test_index/_search -d '{
"query": {
"function_score": {
"query": {
"match_all": {}
},
"field_value_factor": {
"field": "starred",
"modifier": "none",
"factor": 2
}
}
},
"aggs" : {
"types" : {
"filters" : {
"filters" : {
"category1" : { "type" : { "value" : "category1"}},
"category2" : { "type" : { "value" : "category2"}},
"category3" : { "type" : { "value" : "category3"}},
"category4": { "type" : { "value" : "category4"}},
"category5" : { "type" : { "value" : "category5"}}
}
},
"aggs": {
"topFoundHits": {
"top_hits": {
"size": 5
}
}
}
}
}
}'
这里的想法是在许多分类文档中搜索与特定字符串查询匹配的所有文档。然后使用聚合,我想按类别查找前五个结果文档。加星标的项目会得到提升,以便它们显示在其他搜索结果之上。
当我直接在终端中输入上面列出的命令时,这非常有效,但当我尝试将其放入 pyes 中时,它不起作用。我不确定最好的方法是什么。 pyes 库的文档让我很难将其完全转换为 pyes 对象。
我正在尝试执行以下操作:
query_dsl = self.get_text_index_query_dsl()
resulting_docs = conn.search(query=query_dsl)
(其中 self.get_test_index_query_dsl
返回上面的查询 dsl 字典)
按原样搜索给我一个: ElasticSearchException: QueryParsingException[[test_index] No query registered for [query]]; }]
如果我删除父“查询”映射并尝试:
query_dsl = {
"function_score": {
"query": {
"match_all": {}
},
"field_value_factor": {
"field": "starred",
"modifier": "none",
"factor": 2
}
},
"aggs" : {
"types" : {
"filters" : {
"filters" : {
"category1" : { "type" : { "value" : "category1"}},
"category2" : { "type" : { "value" : "category2"}},
"category3" : { "type" : { "value" : "category3"}},
"category4": { "type" : { "value" : "category4"}},
"category5" : { "type" : { "value" : "category5"}}
}
},
"aggs": {
"topFoundHits": {
"top_hits": {
"size": 5
}
}
}
}
}
}
这也会出错:ElasticSearchException: ElasticsearchParseException[Expected field name but got START_OBJECT "aggs"]; }]
除了 pyes 似乎还没有“topFoundHits”功能(我认为)这一事实之外,这些错误也阻碍了我。
有什么想法为什么会发生这种情况以及如何解决它吗?非常感谢!
最佳答案
我使用这个库完成了这项工作,您可以在其中使用常规查询 dsl JSON 语法:http://elasticsearch-dsl.readthedocs.org/en/latest/ 。
关于python - 查询 DSL 在 pyes 搜索中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921558/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!