elasticsearch - 如何使用 Elastic Java API 6.5.1 仅使用原始查询 JSON 进行搜索?
问题描述
如何获取原始 JSON 字符串并通过 Java API 进行查询?它应该适用于 Curl 在 Elastic 中接受的任何复杂查询。
例如:
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"name": "<name>"
}
},
{
"match": {
"address": {
"query": "<address>",
"fuzziness": 1,
"prefix_length": 1,
"operator": "or",
"minimum_should_match": "80%"
}
}
},
{
"match_phrase": {
"city_nm": "<city_nm>"
}
},
{
"term": {
"state_province_cd": "<state_province_cd>"
}
}
]
}
}
}
我尝试Query Builders' simpleQueryStringQuery
了实现此目的的方法,但它创建的查询没有给出正确的结果。
例如,要仅使用名称搜索记录,这是simpleQueryStringQuery
正在生成的查询,但不是只返回一条记录,而是返回多条记录。
{
"query": {
"simple_query_string": {
"query": """{"query":{"bool":{"must":[{"match_phrase":{"name":"Neeraj"}}]}}}"""
}
}
}
而如果我在 Kibana 控制台中运行相同的查询,返回正确数量的结果。
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"name": "Jaas"
}
}
]
}
}
}
解决方案
推荐阅读
- python - 创建浮点输出列表并对其进行平均
- html - Flex 在网格中的行为不符合预期
- java - 坚持练习循环遍历数组时出错
- linux - 在 Linux 中允许用户在不拥有文件的情况下编辑文件
- linux - 在 Linux 中测量系统调用开销
- android - Google Places API Crash Javalite clash with other Firebase APIs
- sql-server - SQL Server 已安装,但未在 Windows 服务中显示
- git - 如何在 --destination-dir 中指定分支路径?
- java - 在 Java 中,我如何查看一个对象是否属于作为方法参数传递的正确类型?特别是如果类型是原始类型?
- angularjs - $timeout 函数的问题