当前位置: 首页 > 知识库问答 >
问题:

什么是搜索的改型或运算符

阳狐若
2023-03-14

我基本上想搜索一个有2个过滤器/标签的查询

(例如2个国家/地区的1个城市--美国或加拿大)

ElasticSearchApi.java


    public interface ElasticSearchAPI {
        @GET("_search/")
        Call search(
                @HeaderMap Map headers,
                @Query("default_operator") String operator,
                @Query("q") String query

        );
    }

search.java的一部分


    Retrofit retrofit = new Retrofit.Builder()
                                .baseUrl(BASE_URL)
                                .addConverterFactory(GsonConverterFactory.create())
                                .build();

                        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 call = searchAPI.search(headerMap, "AND", searchString);

                        call.enqueue(new Callback() {
                            @Override
                            public void onResponse(Call call, Response response) {

                                HitsList hitsList = new HitsList();
                                String jsonResponse = "";
                                try{
                                    Log.d(TAG, "onResponse: server response: " + response.toString());

                                    if(response.isSuccessful()){
                                        hitsList = response.body().getHits();
                                    }else{
                                        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(), "search failed", Toast.LENGTH_SHORT).show();
                            }
                        });
                    }

                    return false;
                }

例如,代码呈现ff查询,该查询显示国家/地区内名称为NEW的可用城市:

这将导致显示在美国或加拿大的所有城市以新的名称。

但似乎不起作用,所以我要求正确的改造或操作员,或一些可以帮助我实现我的目标。

共有1个答案

毋玺
2023-03-14

找到了答案:

表示或操作

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

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

 类似资料:
  • 使用指南 - 数据报告 - 优化分析 - 什么是搜索词排名 您可以在此设置需要跟踪的搜索词,搜索词报告会根据您设置的搜索词,给出其在百度搜索中和百度指数中的排名,并会提供PV、UV、跳出率、平均访问时长等信息,帮助您更好的优化推广效果。 1、设置搜索词 2、查看排名

  • 首先大家要知道,记忆化搜索是动态规划的入门。 什么是记忆化搜索?搜索的低效在于没有能够很好地处理重叠子问题;动态规划虽然比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈。记忆化搜索正是在这样的情况下产生的,它采用搜索的形式和动态规划中递推的思想将这两种方法有机地综合在一起,扬长避短,简单实用,在信息学中有着重要的作用。 用一个公式简单地说:记忆化搜索=搜索的形式+动态规划

  • 本篇将会结合实例解析启发式搜索,帮助大家更好理解。 启发式搜索(英文:heuristic search)是一种改进的搜索算法。它在普通搜索算法的基础上引入了启发式函数,该函数的作用是基于已有的信息对搜索的每一个分支选择都做估价,进而选择分支。简单来说,启发式搜索就是对取和不取都做分析,从中选取更优解或删去无效解。 (1)贪婪最佳优先 在Dijkstra算法中,我已经发现了其最终要的缺陷,搜索存在盲

  • 问题内容: 我最近遇到了以下代码: 这是什么,某种反向双λ? 问题答案: 没有操作员。第一个只是Java 8中引入的lambda语法,第二个是误导性的“小于” 和“一元减”的串联。 您可以将其读取为,即它会测试是否小于,所有(很好,大多数)负数就是这种情况,因此命名为。 仅出于完整性考虑:此测试不仅(有意地?)难以理解,而且-如评论中所指出- 也因(而)失败。相反,您可能应该只使用简单得多的。

  • 本文向大家介绍JavaScript中的运算符是什么?,包括了JavaScript中的运算符是什么?的使用技巧和注意事项,需要的朋友参考一下 让我们采用一个简单的表达式“ 4 + 5等于9”。这里4和5称为操作数,“ +”称为运算符。 JavaScript支持以下类型的运算符。 算术运算符 比较运算符 逻辑(或关系)运算符 赋值运算符 条件(或三元)运算符 例 这是一个说明运算符示例的示例-