【问题标题】:What is Retrofit OR operator for search什么是用于搜索的 Retrofit OR 运算符
【发布时间】:2019-03-10 21:44:51
【问题描述】:

我基本上想搜索带有 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("授权", Credentials.basic("用户", mElasticSearchPassword)); 字符串搜索字符串 = ""; if(!mSearchText.equals("")){ searchString = searchString + mSearchText.getText().toString() + "*"; } if(!mPrefCountry.equals("")){ searchString = searchString + "国家:" + mPrefCountry; } 调用 call = searchAPI.search(headerMap, "AND", searchString); call.enqueue(新回调(){ @覆盖 公共无效onResponse(呼叫呼叫,响应响应){ HitsList hitsList = new HitsList(); 字符串 jsonResponse = ""; 尝试{ Log.d(TAG, "onResponse: 服务器响应:" + response.toString()); 如果(响应.isSuccessful()){ hitsList = response.body().getHits(); }别的{ jsonResponse = response.errorBody().string(); } Log.d(TAG, "onResponse: hits: " + hitsList); for(int i = 0; i call, Throwable t) { Log.e(TAG, "onFailure: " + t.getMessage() ); Toast.makeText(getActivity(), "搜索失败", Toast.LENGTH_SHORT).show(); } }); } 返回假; }

例如该代码呈现 ff 查询,该查询显示国家 US 内名称中带有 NEW 的可用城市:

_search?default_operator=AND&q=new*+country:Us

但我试图实现的是这样的:

_search?default_operator=AND&q=new*+country:Us||加拿大

这应该会显示US OR CANADA内所有名称中带有NEW的城市。

但是 || 似乎不起作用,所以我要求正确的 Retrofit OR 运算符,或者可以帮助我实现目标的东西。

【问题讨论】:

  • 有什么问题?您在此处发布为minimal reproducible example 的当前代码面临什么问题?请详细说明。您尝试访问的示例 URL 也有助于理解问题。
  • @Shashanth 我添加了更多信息希望它能澄清我的问题

标签: java android retrofit2


【解决方案1】:

找到答案:

| 表示 OR 操作

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html

但它在查询中不起作用,所以为了实现我的目标,我需要将 | 变成 OR(前后有空格)

_search?default_operator=AND&q=new*+国家:(美国或加拿大)

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多