我基本上想搜索带有 2 个过滤器/标签的查询
(例如 2 个国家/地区的 1 个城市 - 美国或加拿大)
ElasticSearchAPI.java
公共接口 ElasticSearchAPI {
@GET("_search/")
呼叫搜索(
@HeaderMap 地图标题,
@Query("default_operator") 字符串运算符,
@Query("q") 字符串查询
);
}
Search.java 的一部分
改造改造 = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
。建造();
ElasticSearchAPI searchAPI = retrofit.create(ElasticSearchAPI.class);
HashMap headerMap = new HashMap();
headerMap.put("Authorization", Credentials.basic("user", mElasticSearchPassword));
String searchString = "";
if(!mSearchText.equals("")){
searchString = searchString + mSearchText.getText().toString() + "*";
}
if(!mPrefCountry.equals("")){
searchString = searchString + " country:" + mPrefCountry;
}
调用 call = searchAPI.search(headerMap, "AND", searchString);
call.enqueue(新回调(){
@覆盖
公共无效onResponse(呼叫呼叫,响应响应){
HitsList hitsList = new HitsList();
字符串 jsonResponse = "";
尝试{
Log.d(TAG, "onResponse: 服务器响应:" + response.toString());
返回假;
}
例如,代码呈现 ff 查询,该查询显示美国国家/地区内名称中带有NEW的可用城市:
_search?default_operator=AND&q=new*+country:Us
但我试图实现的是这样的:
_search?default_operator=AND&q=new*+country:Us||加拿大
这应该导致在US OR CANADA中显示名称中带有NEW 的所有城市。
但是|| 似乎不起作用,所以我要求正确的改造或操作员,或者可以帮助我实现目标的东西。
相关分类