elasticsearch elasticsearch查询字符串格式
我正在使用elasticsearch elasticsearch查询字符串格式,elasticsearch,elasticsearch,我正在使用 SearchBuilder.searchSource.query(query_string).buildAsBytes() 在elasticsearch服务器上执行查询字符串 问题是我不知道查询字符串的正确格式是什么。例如,我想找到所有国家字段为美国的文档,我可以使用 http://my.elastic.search.server/foo/dummy/_search?q=country:US 为了得到我需要的东西。但是在java api方面,我尝试了country:US,q=c
SearchBuilder.searchSource.query(query_string).buildAsBytes()
在elasticsearch服务器上执行查询字符串
问题是我不知道查询字符串的正确格式是什么。例如,我想找到所有国家
字段为美国
的文档,我可以使用
http://my.elastic.search.server/foo/dummy/_search?q=country:US
为了得到我需要的东西。但是在java api方面,我尝试了country:US
,q=country:US
,和{\'country\':\'US\'}
,但每次我回到SearchPhaseeExecutionException
ElasticSearch的文档并没有对本例中的查询字符串的格式提供任何说明,我已经用尽了与此主题相关的Google结果。有人能帮我吗?谢谢 根据您的REST查询,根据
SearchResponse response = client.prepareSearch("foo")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(termQuery("country", "US"))
.execute()
.actionGet();
您还可以使用纯查询字符串,如REST示例中所示:
.setQuery(queryString("country:US"))
最佳参考是中可用的Javadoc。基于您的REST查询,根据
SearchResponse response = client.prepareSearch("foo")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(termQuery("country", "US"))
.execute()
.actionGet();
您还可以使用纯查询字符串,如REST示例中所示:
.setQuery(queryString("country:US"))
最好的参考是在中提供的Javadoc。OK。似乎我需要传入一个更人为的json字符串 { “查询字符串”:{ “默认_字段”:“另一个foo”, “查询”:“这个和那个或那个” } }
它很有用,因为我可以通过elasticsearch传递纯Lucene风格的查询 好的。似乎我需要传入一个更人为的json字符串 { “查询字符串”:{ “默认_字段”:“另一个foo”, “查询”:“这个和那个或那个” } }
它很有用,因为我可以通过elasticsearch传递纯Lucene风格的查询 我最近就这个话题写了一篇综述:
我最近写了一篇关于这个主题的概述:
这是一个老问题,但当我为类似的问题苦苦挣扎时,我想我应该加上我的两分钱。 首先我找不到
SearchBuilder.searchSource.query(query_string).buildAsBytes()
正如在ES java API的原始问题中所提到的
我的身体看起来像
{
"query": {
"query_string": {
"default_field": "file",
"query": "Java"
}
},
"highlight": {
"fields": {
"file": {
}
}
}
}
我发现这可以通过以下两种方式实现
String queryString = "{"
+ "\"query_string\": "
+ "{"
+ "\"default_field\":"
+ " \"file\","
+ " \"query\": \"Email OR @gmail.com @yahoo.com\""
+ "}"
+ "}";
第一种方法
第二种方法
然后是标准
SearchResponse response = searchRequestBuilder.execute().actionGet();
注意事项
这是一个老问题,但当我为类似的问题苦苦挣扎时,我想我应该加上我的两分钱。 首先我找不到
SearchBuilder.searchSource.query(query_string).buildAsBytes()
正如在ES java API的原始问题中所提到的
我的身体看起来像
{
"query": {
"query_string": {
"default_field": "file",
"query": "Java"
}
},
"highlight": {
"fields": {
"file": {
}
}
}
}
我发现这可以通过以下两种方式实现
String queryString = "{"
+ "\"query_string\": "
+ "{"
+ "\"default_field\":"
+ " \"file\","
+ " \"query\": \"Email OR @gmail.com @yahoo.com\""
+ "}"
+ "}";
第一种方法
第二种方法
然后是标准
SearchResponse response = searchRequestBuilder.execute().actionGet();
注意事项
我觉得这应该行得通
QueryBuilder qb = QueryBuilders.queryStringQuery("pattern").field("field to search");
SearchRequestBuilder sreq = client.prepareSearch("INDEX").setTypes("TYPE").setQuery(qb);
SearchResponse response = sreq
.setFrom("From page")
.setSize("size")
.execute().actionGet();
我觉得这应该行得通
QueryBuilder qb = QueryBuilders.queryStringQuery("pattern").field("field to search");
SearchRequestBuilder sreq = client.prepareSearch("INDEX").setTypes("TYPE").setQuery(qb);
SearchResponse response = sreq
.setFrom("From page")
.setSize("size")
.execute().actionGet();
SearchPhaseExecutionException
说了什么?你想通过java创建json还是想使用java API?因此“更人为的json”起作用,tje建议“国家:美国”不起作用?SearchPhaseExecutionException怎么说?您想通过java创建json还是想使用java API?所以“更人为的json”起作用,tje推荐的“country:US”不起作用?termQuery()的源代码是什么?termQuery()的源代码是什么?