国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖

這篇具有很好參考價值的文章主要介紹了elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

準備數據

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖,elasticsearch,springboot,java,elasticsearch,機器學習

1. FunctionScoreQueryBuilder 方式

代碼

//構建腳本查詢
Script script = new Script(
        Script.DEFAULT_SCRIPT_TYPE,
        "painless",
        //pic_vector - 搜索字段
        "cosineSimilarity(params.queryVector, doc['pic_vector']) + 1.0",
        new HashMap<String, Object>() {{
            //searchData.getPicVector() - 需要搜索的向量數組,List<Double> 類型
            put("queryVector", searchData.getPicVector());
        }});
ScriptScoreFunctionBuilder scriptScoreFunctionBuilder = ScoreFunctionBuilders.scriptFunction(script);

//構建普通查詢
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 只查存在的數據
boolQueryBuilder.filter(QueryBuilders.termQuery(FieldGetterUtil.getPropName(searchData::getState), ConstantEnum.ONE.code));
// 查詢名稱
if (StringUtils.isNotBlank(searchData.getName())) {
    boolQueryBuilder.filter(QueryBuilders.termQuery(FieldGetterUtil.getPropName(searchData::getName), searchData.getName()));
}

// 構建查詢請求
SearchRequest searchRequest = new SearchRequest("picture");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(boolQueryBuilder, scriptScoreFunctionBuilder);
searchSourceBuilder.query(functionScoreQueryBuilder);
searchRequest.source(searchSourceBuilder);

// 執(zhí)行搜索
SearchResponse searchResponse = null;
try {
    searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
    e.printStackTrace();
}

DSL

GET picture/_search
{
  "query": {
    "function_score": {
      "query": {
        "bool": {
          "filter": [
            {
              "term": {
                "state": {
                  "value": 1,
                  "boost": 1
                }
              }
            }
          ],
          "adjust_pure_negative": true,
          "boost": 1
        }
      },
      "functions": [
        {
          "filter": {
            "match_all": {
              "boost": 1
            }
          },
          "script_score": {
            "script": {
              "source": "cosineSimilarity(params.queryVector, doc['pic_vector']) + 1.0",
              "lang": "painless",
              "params": {
                "queryVector": [
                  數據太長了,先不展示了~
                ]
              }
            }
          }
        }
      ],
      "score_mode": "multiply",
      "max_boost": 3.4028235e+38,
      "boost": 1
    }
  }
}

搜索圖片

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖,elasticsearch,springboot,java,elasticsearch,機器學習

搜索結果

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖,elasticsearch,springboot,java,elasticsearch,機器學習文章來源地址http://www.zghlxwxcb.cn/news/detail-745546.html

2. WrapperQueryBuilder 方式

代碼

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
searchRequest.source().query(boolQueryBuilder);

// 只查存在的數據
boolQueryBuilder.filter(QueryBuilders.termQuery(FieldGetterUtil.getPropName(searchData::getState), ConstantEnum.ONE.code));

// 查詢拖名稱
if (StringUtils.isNotBlank(searchData.getName())) {
    boolQueryBuilder.filter(QueryBuilders.termQuery(FieldGetterUtil.getPropName(searchData::getName), searchData.getName()));
}

/*
    若包含圖片向量,使用 WrapperQueryBuilder 重新構建搜索 DSL 。
    這個方法要在所有條件設置完成之后調用
 */
List<Double> picVector = searchData.getPicVector();
if (CollectionUtil.isNotEmpty(picVector)) {
    buildPicVectorWrapperQueryBuilder(searchData, searchRequest);
}
//執(zhí)行檢索
SearchResponse searchResponse = null;
try {
    searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
    e.printStackTrace();
    return ElasticSearchUtil.getEmptyList();
}

/**
 * 構建向量搜索DSL
 *
 * @param searchData
 * @param searchRequest
 */
private void buildPicVectorWrapperQueryBuilder(PictureSearchParam searchData, SearchRequest searchRequest) {
    SearchSourceBuilder source = searchRequest.source();
    source.minScore(searchData.getMinCosScore());
    JSONObject boolQueryDsl = JSONObject.parseObject(source.toString()).getJSONObject("query");
    String fieldName = MapUtils.camelToUnderline(FieldGetterUtil.getPropName(searchData::getPicVector));
    JSONObject queryObject = new JSONObject();
    queryObject.
            put("script_score", new JSONObject() {{
                put("query", boolQueryDsl);
                put("script", new JSONObject() {{
                    put("source", "cosineSimilarity(params." + fieldName + ", doc['" + fieldName + "'])+1.0");
                    put("params", new JSONObject() {{
                        put(fieldName, searchData.getPicVector());
                    }});
                }});
            }});
    WrapperQueryBuilder wrapperQueryBuilder = new WrapperQueryBuilder(JSON.toJSONString(queryObject));
    searchRequest.source().query(wrapperQueryBuilder);
}

DSL

GET picture/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "wrapper": {
      "query": "eyJzY3JpcHRfc2NvcmUiOnsicXVlcnkiOnsiYm9vbCI6eyJmaWx0ZXIiOlt7InRlcm0iOnsic3RhdGUiOnsidmFsdWUiOjEsImJvb3N0IjoxLjB9fX1dLCJhZGp1c3RfcHVyZV9uZWdhdGl2ZSI6dHJ1ZSwiYm9vc3QiOjEuMH19LCJzY3JpcHQiOnsic291cmNlIjoiY29zaW5lU2ltaWxhcml0eShwYXJhbXMucGljX3ZlY3RvciwgZG9jWydwaWNfdmVjdG9yJ10pKzEuMCIsInBhcmFtcyI6eyJwaWNfdmVjdG9yIjpbMS42NDQyMDUyMTI1OTMwNzg2LDEuODg2NTg2NDI3Njg4NTk4NiwxLjc1MjA5NTQ2MDg5MTcyMzYsMS40Njg4NTIxNjIzNjExNDUsMC41MjE1MjQzNjk3MTY2NDQzLDAuNzE2MjgzMDgyOTYyMDM2MSwwLjI0NTcxNzY0NDY5MTQ2NzI5LDEuNDE2MTI3NDQzMzEzNTk4NiwwLjY2NDY2NDc0NTMzMDgxMDUsMS4zNDkwNDg4NTI5MjA1MzIyLDAuNDgxMTQwMjg1NzMwMzYxOTQsMC4yMzc5MjgzNDU3OTk0NDYxLDEuMjQ2OTg5NjA3ODEwOTc0MSwwLjA4NjYyNDk2NTA3MTY3ODE2LDAuNTkyMjI3Mzk5MzQ5MjEyNiwwLjEwMDUyNjYxNTk3NzI4NzI5LDAuMTA0ODk1ODA3ODAyNjc3MTUsMi45NjI2MTY5MjA0NzExOTE0LDAuOTY0NjAzNDI0MDcyMjY1NiwwLjE5MzM5MTc0MDMyMjExMzA0LDAuNjcxNTkwOTI0MjYzMDAwNSwwLjA0OTEzMTkzNzMyNTAwMDc2LDAuMCwwLjQyMzM3NTU3NjczNDU0Mjg1LDAuMDI1ODM0MDE4MzY0NTQ4NjgzLDAuMCwwLjExNzE2MzcxMDI5NjE1NDAyLDAuNjA2NjczNTk4Mjg5NDg5NywwLjAxNDI3NjYyNzQ1MTE4MTQxMiwyLjg4NDM3MzkwMzI3NDUzNiwxLjY0MTIyNDc0MTkzNTczLDEuMjY2NjYwOTI4NzI2MTk2MywwLjI1ODM1NDE1NzIwOTM5NjM2LDEuMTQzOTIwMDYzOTcyNDczMSwxLjQ2MTQ4OTc5NjYzODQ4ODgsMC4xMTI0MDMzODUzNDExNjc0NSwwLjQxNTgwMTEzNzY4NTc3NTc2LDEuMDE3MzYyNDc1Mzk1MjAyNiwwLjU5ODcxNTI0NTcyMzcyNDQsMS4yODI2OTYzNjYzMTAxMTk2LDAuNTAzMjkwNzcyNDM4MDQ5MywxLjA1NzE4NTE3MzAzNDY2OCwwLjU0NzE2MDgwNDI3MTY5OCwwLjA1MjAxOTc1NjI4NzMzNjM1LDAuOTkyNjMyMzg5MDY4NjAzNSwwLjIxNzU4MDc5NTI4ODA4NTk0LDEuNTA4MDc3MTQ0NjIyODAyNywwLjg3MTQxNzE2NDgwMjU1MTMsMS4wNzQzNDY1NDIzNTgzOTg0LDAuMjY2OTMyMDEwNjUwNjM0NzcsMC4wOTkwNjY3NDE3NjQ1NDU0NCwwLjYyOTM5MDY1Njk0ODA4OTYsMS4yODY0Mjg0NTE1MzgwODYsMC4wLDAuMzY2ODI0OTU0NzQ4MTUzNywwLjUzMTE0MTM0MDczMjU3NDUsMC4wNjEzNTEwNDU5NjYxNDgzNzYsMi4yNTAxODUwMTI4MTczODMsMi43ODk4NDkwNDI4OTI0NTYsMC4xNTA3MTY1MTMzOTUzMDk0NSwwLjE0MzQ3MzA3Mzg0MDE0MTMsMC45NTE2MzY0OTMyMDYwMjQyLDAuMTQwNzgyOTIyNTA2MzMyNCwwLjI1Mjg3MDY0OTA5OTM1LDAuMTcwODkxNzc2NjgwOTQ2MzUsMS42NTU1NzM5NjQxMTg5NTc1LDAuMCwwLjAwMTk0OTM5Nzg0NzA1NjM4ODksMS4zMzU4MDI3OTM1MDI4MDc2LDAuMDcyMDQ4MjM5NDA5OTIzNTUsMC4xNjI3NTAxNjk2MzQ4MTkwMywwLjExMjk0ODAwNzg4MTY0MTM5LDAuNTU5NjQ3OTE3NzQ3NDk3NiwyLjgyMjY4MTY2NTQyMDUzMjIsMC4xNDE1Nzg3MzM5MjEwNTEwMywwLjAzNTg1ODg1NDY1MTQ1MTExLDAuOTEzNjIzODA5ODE0NDUzMSwwLjQxNDc4ODc4MjU5NjU4ODEzLDEuMDUwOTAzNjc3OTQwMzY4NywwLjMxMjk5NDgwNzk1ODYwMjksMi4wMDAwNjQ2MTE0MzQ5MzY1LDAuODE1Mzk3MDgzNzU5MzA3OSwxLjMyMzA1NTAyODkxNTQwNTMsMS4xMDk1MDMyNjkxOTU1NTY2LDAuMjg2NzUwNzYzNjU0NzA4ODYsMC4xODY3NTM3MDUxNDM5Mjg1MywwLjI1NzQwOTI3NDU3ODA5NDUsMC40NTEzNTM2NjkxNjY1NjQ5NCwwLjAxNjk4MDEzOTUzODY0NTc0NCwwLjIwNzUzNDQwMjYwODg3MTQ2LDAuNDE4MTQ3MzI1NTE1NzQ3MDcsMC40NTU2OTM3MjE3NzEyNDAyMywwLjMyNDMyMDk0MjE2MzQ2NzQsMi4zNjYzMTcyNzIxODYyNzkzLDAuMzQ4ODUxMjkzMzI1NDI0MiwwLjM5NjExNDgyNjIwMjM5MjYsMS4yODQ3MjgwNTAyMzE5MzM2LDAuNDU5NjA5NDc4NzEyMDgxOSwwLjI5NTUxNDMxNTM2Njc0NSwwLjI3NDUwMTE0NDg4NjAxNjg1LDAuMzk3MTAxMjIzNDY4NzgwNSwwLjA5NzIxMDU1NjI2ODY5MjAyLDEuMDc3NjIwNzQ0NzA1MjAwMiwxLjc4NDE0MDExMDAxNTg2OTEsMS4xMDY3NTQwNjQ1NTk5MzY1LDAuNDc4NDQzMTE1OTQ5NjMwNzQsMC4yMDYyNDI1NDY0MzkxNzA4NCwwLjMxMzEwNjExOTYzMjcyMDk1LDAuNjQ2MTEzOTkxNzM3MzY1NywwLjc1MzgxMDk0MjE3MzAwNDIsMC4zOTU0MDcxMTA0NTI2NTIsMC40NTQ5NDMzMjkwOTU4NDA0NSwwLjYyMzI0MDQxMTI4MTU4NTcsMC44OTE5ODk0Njk1MjgxOTgyLDAuMDc4ODUwMDY4MTUxOTUwODQsMC40NTk0NzE0MDQ1NTI0NTk3LDAuMDgxMTAxNDM5ODkzMjQ1NywwLjQzNjc3OTQwOTY0Njk4NzksMC4zODQyNjgyMjQyMzkzNDkzNywwLjMyOTUxNjU4OTY0MTU3MTA0LDAuMzkxMTg4OTQ5MzQ2NTQyMzYsMC4yMjQ4NzM5MDA0MTM1MTMxOCwwLjg2MTA3ODczOTE2NjI1OTgsMC41ODMwNzk2OTU3MDE1OTkxLDAuMjI5NTkwODQ4MDg4MjY0NDcsMC4wLDAuOTUxMjEzMzAwMjI4MTE4OSwxLjU3MTAxMTE4NTY0NjA1NzEsMS4yMzc3MDU1ODgzNDA3NTkzLDAuNzU0Njc4MDEwOTQwNTUxOCwwLjQ4OTY5MDA2NTM4MzkxMTEzLDAuMDE2NzA2NDU3MzYxNTc4OTQsMC4wMDM2NzIzOTkwOTI0NjU2MzksMC4xMzcwNjUxODcwOTY1OTU3NiwxLjc2MzM4NjEzMDMzMjk0NjgsMC4wODE0OTQ1MzI1MjU1Mzk0LDEuMTcwMTg5NDk5ODU1MDQxNSwxLjczOTAwNzIzNDU3MzM2NDMsMC4zOTcwOTIwNDQzNTM0ODUxLDAuMTI0MTA5MDE0ODY4NzM2MjcsMC4yNTE4MzUwMTgzOTYzNzc1NiwwLjAsMC44MTk5MDAwMzU4NTgxNTQzLDAuNzQyMzkyNzE4NzkxOTYxNywwLjYzNDY1NjA3MTY2MjkwMjgsMC4wMjI5MDU5NDc2NDA1MzgyMTYsMC4wNDU4MjE0NjE4MjY1NjI4OCwwLjk2OTU1NjM5MTIzOTE2NjMsMC4xMjE1MjMwODk3MDY4OTc3NCwwLjE3MjczMzU3NTEwNTY2NzExLDAuNzY1NTg5ODkyODY0MjI3MywwLjA4MTM5MzMzMTI4OTI5MTM4LDAuMDc1ODIxNjgyODEwNzgzMzksMC45MDA0MTkxNzU2MjQ4NDc0LDAuMTQ1MTg5MjcwMzc3MTU5MTIsMC42ODYzNzU4NTYzOTk1MzYxLDAuMTg5MTcyODc4ODYxNDI3MywxLjA0ODAyOTE4NDM0MTQzMDcsMC4xOTk1MDcxMTcyNzE0MjMzNCwwLjg2Mjg5ODcwNzM4OTgzMTUsMC41NjA4NjU3NTk4NDk1NDgzLDAuODExMzM1NDQ0NDUwMzc4NCwxLjQ2MjQ3NjYxMTEzNzM5MDEsMS40MzI1NDU1NDI3MTY5OCwwLjQwODMzMzIxMjEzNzIyMjMsMC4zNDMxMDY1Njc4NTk2NDk2NiwwLjk0MDY4NjU4MzUxODk4MTksMC4yNTY4NjA1MjQ0MTU5Njk4NSwxLjEzMjI2NDYxNDEwNTIyNDYsMS4zNTQwNTU3NjIyOTA5NTQ2LDAuMDI4MTcxMzU0OTA0NzcwODUsMC45ODQ2NDExOTQzNDM1NjY5LDAuOTQ3MzM0MDUxMTMyMjAyMSwwLjAxMTg1MDc3NzA4MjE0NTIxNCwwLjA2MTIxMDIyOTk5Mjg2NjUxNiwxLjU3NDk0NzExODc1OTE1NTMsMC4wNzc0MzU5OTI2NTgxMzgyOCwwLjAyMTk5ODE0ODQxMTUxMjM3NSwwLjMzMzczNjEyMTY1NDUxMDUsMS4zNjQ2ODY3Mjc1MjM4MDM3LDAuMTk3MTQ2OTM3MjUxMDkxLDAuMDI2ODQ0MTgxMTIwMzk1NjYsMC4xMjgwNzY4MjE1NjU2MjgwNSwxLjAwNzc0NTI2NTk2MDY5MzQsMC4zNDcyNDc5MjgzODA5NjYyLDEuMjIxODI0NDA3NTc3NTE0NiwwLjA5MTYzMzk4Mjk1NjQwOTQ1LDAuOTMzNjAxOTc1NDQwOTc5LDAuOTg4MzU3NDg0MzQwNjY3NywwLjAwMTE3NTk1NzAzMzQxMDY2ODQsMS4zNzIwMjQwNTkyOTU2NTQzLDAuNjMyMTI5MzcxMTY2MjI5MiwwLjQwNTQ4OTY4MzE1MTI0NTEsMC4zNTIwMjE1NzQ5NzQwNjAwNiwwLjkyNzQyOTYxNjQ1MTI2MzQsMC4zMTY2NjQzNjc5MTQxOTk4MywwLjI5ODQxOTI5Njc0MTQ4NTYsMS4zNzA0OTc4MjI3NjE1MzU2LDAuNTE4MjAxODg3NjA3NTc0NSwxLjA1NjUxMTA0NDUwMjI1ODMsMC40MDAwMjkzOTEwNTAzMzg3NSwwLjQ0NTk2MzI2MzUxMTY1NzcsMC4wNDAzOTU1NDY3MDQ1MzA3MTYsMC4xMDQxODkzNjYxMDIyMTg2MywwLjE3MzQyMzIwMDg0NTcxODM4LDAuMjAwNTUyNzkxMzU3MDQwNCwwLjg3OTYwMTEyMDk0ODc5MTUsMC4xMTAzMzE0OTgwODY0NTI0OCwxLjA3NTM2MTI1MTgzMTA1NDcsMS42NDIxNDgwMTc4ODMzMDA4LDAuODU5NDg5NzM4OTQxMTkyNiwwLjIzMTE4MzQzOTQ5MzE3OTMyLDAuMDIwMTYyNjM4Mjc2ODE1NDE0LDAuMTEwMDgzODMzMzM2ODMwMTQsMS4wMjUxNDY0ODQzNzUsMC42NDMxMDI1MjY2NjQ3MzM5LDAuMzgzNTIxNDM3NjQ0OTU4NSwwLjI3Nzg1NzE4NDQxMDA5NTIsMC4xOTAwNjM0MzE4NTkwMTY0MiwwLjE5NTY5NzYzNTQxMjIxNjIsMC4zMzc3NjI0MTU0MDkwODgxMywxLjMwNDgxNjYwMzY2MDU4MzUsMC40MDQyMTc5Mjg2NDc5OTUsMC4yNTQzOTU3MjMzNDI4OTU1LDAuNjQ2NDc4Mjk1MzI2MjMyOSwwLjExODYxNzMxMTEyMDAzMzI2LDAuMzY0NTAxNzQ0NTA4NzQzMywwLjM5MTc1NjcxMzM5MDM1MDM0LDAuMDAxMjQ4NDA4OTIzODU2OTE0LDAuMjE0Mzg4MzI1ODEwNDMyNDMsMS43MTc1MzM3MDc2MTg3MTM0LDAuMDIzOTAzMjAyMjY1NTAxMDIyLDAuMDg0NjMzMjE2MjYxODYzNzEsMi4zNDI4MzA2NTc5NTg5ODQ0LDEuMDU3MDIwNDI1Nzk2NTA4OCwwLjcwNjcyNjAxNDYxNDEwNTIsMC4wMjk4OTkzMDI4NzAwMzUxNywwLjUwNDIzMTk4OTM4MzY5NzUsMS4zOTMxNzM2OTQ2MTA1OTU3LDIuNjY1ODgzMDY0MjcwMDE5NSwwLjE1MDQ2NDY1Mzk2ODgxMTA0LDAuMDY1OTk5MTk0OTc5NjY3NjYsMC45NTAwNjc5MzczNzQxMTUsMS44MjEzODgzNjM4MzgxOTU4LDEuMTY5MDk0NTYyNTMwNTE3NiwwLjI0NTQxNzE2Mjc3NTk5MzM1LDAuMjU1NzU3MTgyODM2NTMyNiwxLjM1NjUzMDY2NjM1MTMxODQsMC44MDcyNzIwNzY2MDY3NTA1LDAuMDg4MTYxOTIyOTkxMjc1NzksMC4zNTU3MTY0MDcyOTkwNDE3NSwwLjE4MzkwNTQyMjY4NzUzMDUyLDAuMjE2NzM1MjczNTk5NjI0NjMsMC4wMzQzNTQ5NzM1ODQ0MTM1MywwLjY3NzE3ODYyMTI5MjExNDMsMC4zNjQ3ODI4Njk4MTU4MjY0LDAuMDEzNzI5OTIwNjEwNzg1NDg0LDMuMDQyNjM2MTU2MDgyMTUzMywyLjM2Nzk4MDQ4MDE5NDA5MiwwLjU3ODcxMzIzODIzOTI4ODMsMS40NjY3MjMwODQ0NDk3NjgsMC40NDU4OTQzNjA1NDIyOTczNiwwLjIyNDIwNDk3MjM4NjM2MDE3LDAuNDYyODk5Nzc0MzEyOTczLDAuODQ2MTIzNTE2NTU5NjAwOCwwLjg0NDg1NTQyNzc0MjAwNDQsMC4yMjcxODg0MDgzNzQ3ODYzOCwwLjUyMjQxMDk4ODgwNzY3ODIsMC4zNjMyODgwMTUxMjcxODIsMS4wNTk1NTQ0NTc2NjQ0ODk3LDAuNzMzNzA5MTU2NTEzMjE0MSwwLjgyODg5NDg1MzU5MTkxOSwwLjM4OTY0NjE3MjUyMzQ5ODU0LDAuMzM2MDE3ODE3MjU4ODM0ODQsMS42MzE1NDg1MjM5MDI4OTMsMC4xMDg0MDc4OTk3MzczNTgxLDAuMDAyMDUyNjQ2NTk1OTg0Njk3MywwLjQ0NjMwNjgyNDY4NDE0MzA3LDAuNzM3ODkwODk5MTgxMzY2LDAuNTA0OTkwOTk0OTMwMjY3MywxLjUyMzQ1NDQyNzcxOTExNjIsMC4xMjA0NDAxMTA1NjQyMzE4NywwLjQ3Njk3MTQ0NzQ2NzgwMzk2LDAuMjE5OTYyMzczMzc1ODkyNjQsMC4wMzYzODIzNzcxNDc2NzQ1NiwwLjAwMzg4NDUwOTQzODY0ODgyLDEuMTM3OTY5MDE3MDI4ODA4NiwwLjA5NDE5NzY4MzAzNjMyNzM2LDAuMDQzMTk5ODg5MzYxODU4MzcsMC4zNTkwMzI5NTg3NDU5NTY0LDAuNzYzOTY4NDY3NzEyNDAyMywwLjIwMDY4NjQzOTg3MTc4ODAyLDAuMDMzMDQyMzQ4OTIxMjk4OTgsMC45MDA1MDU5MDAzODI5OTU2LDAuMzY2NTQ2MTI0MjE5ODk0NCwwLjA3MjIwNjgyNTAxNzkyOTA4LDAuNDQxMzU3NTIzMjAyODk2MSwyLjI4NDc4NTI3MDY5MDkxOCwwLjQ0NDI0ODA4MDI1MzYwMTEsMC40MjU5NjAwNjM5MzQzMjYxNywwLjUzOTczNjkyNjU1NTYzMzUsMC40ODI1NjczNDAxMzU1NzQzNCwwLjA1MjQyNzM4MTI3NzA4NDM1LDAuMDQ4MTg4MjM1NjEwNzIzNDk1LDAuMDIwMDczMzM1NjE3NzgwNjg1LDAuMjg4MjgzNzA1NzExMzY0NzUsMC41MDEyMDY5MzQ0NTIwNTY5LDAuMTcxMTE5MDY0MDkyNjM2MSwwLjQ0NTU4NzAzODk5MzgzNTQ1LDAuMTE1NjU5ODkyNTU5MDUxNTEsMi4zMzUwNDYwNTI5MzI3MzkzLDAuOTUyNjEzNTMyNTQzMTgyNCwwLjk2NTgwMjI1MjI5MjYzMzEsMC41ODUzNDI3NjQ4NTQ0MzEyLDAuNDc4MTk2MzgyNTIyNTgzLDAuOTMxOTExNzA2OTI0NDM4NSwzLjE1OTY3OTQxMjg0MTc5NywwLjYzMTMyMTc4NzgzNDE2NzUsMC40ODE5MzEwMzA3NTAyNzQ2NiwwLjQ5MDc0OTgzNTk2ODAxNzYsMS4xMjc5MDM1ODA2NjU1ODg0LDAuNTIwMDk4MDMwNTY3MTY5MiwwLjMzNTM3NDc0Mjc0NjM1MzE1LDEuMDc5MTg1ODQzNDY3NzEyNCwwLjAwMTg0OTE4NDI3ODM5ODc1MjIsMC4zMDAzNzQwMDEyNjQ1NzIxNCwwLjMzOTk3NzM4MzYxMzU4NjQsMC4wMTA4ODkyMjA5ODI3ODk5OTMsMC4yNTI2NzA1MjY1MDQ1MTY2LDAuOTYxMzEzMzY2ODg5OTUzNiwwLjU1MzU2OTMxNjg2NDAxMzcsMi44NjgyMjcyNDM0MjM0NjIsMC42MTYwNzg4NTM2MDcxNzc3LDAuMzM5NjM0MzI5MDgwNTgxNjcsMC43OTQ4MDk3NTg2NjMxNzc1LDEuMzA5MzE4MDY1NjQzMzEwNSwwLjc5NzE1MDk2OTUwNTMxMDEsMC4xMTEyNjAxNjA4MDM3OTQ4NiwxLjgwNTY0NzYxMTYxODA0MiwwLjYyMzA5Nzk1NjE4MDU3MjUsMC4zNjE5NjcxNzYxOTg5NTkzNSwwLjAzMjE0NzExMzIzMzgwNDcsMS4zNjMwMzYxNTU3MDA2ODM2LDIuNTkwODg0MjA4Njc5MTk5LDAuNjAwNzgyODcxMjQ2MzM3OSwwLjE0MDUxMDYwMzc4NTUxNDgzLDAuMzQ4OTAzODY0NjIyMTE2MSwxLjA3MDIyMTY2MjUyMTM2MjMsMS40Nzk0ODMwMDgzODQ3MDQ2LDAuMzk3NjcwMDMwNTkzODcyMDcsMC4yMDY3OTk1NjY3NDU3NTgwNiwwLjAxNTc0MzExNzc3OTQ5MzMzMiwwLjI0NjUwMzA1NTA5NTY3MjYsMS43NTU1ODk3MjM1ODcwMzYxLDAuMDYxMzM5NTA4NzQyMDk0MDQsMS4xMDExMTc3MzAxNDA2ODYsMC45ODkxMjkzMDQ4ODU4NjQzLDAuNDc5MTYwMjE5NDMwOTIzNDYsMC4wNDY1NDY5MzIzMDk4NjU5NSwxLjMzNTY5NzA1NDg2Mjk3NiwxLjI3MDk2MjgzNDM1ODIxNTMsMC4xMDkyMzU3MjYyOTY5MDE3LDAuMzc3Nzg3MjYyMjAxMzA5MiwwLjI1ODY2MTc3Njc4MTA4MjE1LDIuODYyOTYxMDUzODQ4MjY2NiwwLjMzMDAzMjYxNjg1MzcxNCwwLjMwMDIxMjM4MzI3MDI2MzY3LDAuMTQ5NTQ5OTc1OTkxMjQ5MDgsMC41NDI0NTY5ODQ1MTk5NTg1LDAuMDcyNTIyNjMyNzc3NjkwODksMC4xNTg2NTEzMzcwMjc1NDk3NCwwLjQwMDc2MDM1MjYxMTU0MTc1LDAuNzI4MjU2Mjg1MTkwNTgyMywwLjM3MDUzNjE3ODM1MDQ0ODYsMC4wMTU0MTM3ODkwNzg1OTMyNTQsMC4wMTU4NDA4MzQwMDY2NjcxMzcsMC40MDM0NDU4MTAwNzk1NzQ2LDAuMDI4NjgxNjA5Nzc5NTk2MzMsMS4zNDIwMDE5MTQ5NzgwMjczLDAuMDM2MDgzMjQ3NTEyNTc4OTY0LDAuODIzNjU1NzI0NTI1NDUxNywwLjc4OTI0NDc3MTAwMzcyMzEsMC4xMjM0MzUyNTE0MTQ3NzU4NSwwLjA3MDM4MzkxMzgxNTAyMTUxLDAuMDY4NjA4NzA4Njc5Njc2MDYsMC42OTMzMTE3NTA4ODg4MjQ1LDAuMCwwLjM2MDA0MTc2NzM1ODc3OTksMC4zNTE3OTUyODU5NDAxNzAzLDAuNzM0ODkyMzA4NzEyMDA1NiwyLjM4MzYxODM1NDc5NzM2MzMsMC4xOTU2ODI3Nzg5NTQ1MDU5MiwwLjAxOTgyMjE0NDg4MDg5MDg0NiwwLjQ5MjA5NDM5NzU0NDg2MDg0LDEuMTM2MzczNDAwNjg4MTcxNCwwLjc3NjI4NjY2MTYyNDkwODQsMC4zNTE3MzM0MTYzMTg4OTM0MywwLjA1OTA5MDM0OTgyMzIzNjQ2NSwwLjI0NTIxMjc0ODY0NjczNjE1LDEuMzcwMDM5MzQzODMzOTIzMywwLjUxMjE4OTMyODY3MDUwMTcsMC40NTM0Mjg2MjYwNjA0ODU4NCwyLjM0ODk5MDY3ODc4NzIzMTQsMC4xMzAyODg3NjQ4MzQ0MDQsMC45MTc5NjA0MDUzNDk3MzE0LDAuMjM0Njc1MjI4NTk1NzMzNjQsMS4yODcwOTM2MzkzNzM3NzkzLDAuMTgzOTU1Njg0MzA0MjM3MzcsMC44OTYxMTIzMjI4MDczMTIsMC4wNTE2OTc4Njg4NTM4MDc0NSwwLjU4NDk5NTUwODE5Mzk2OTcsMC4xNzUyMDk4MjAyNzA1MzgzMywwLjQzMjI3MDgyNDkwOTIxMDIsMC4xMDA2NDk4MzM2NzkxOTkyMiwwLjY5NDk3Mjk5MTk0MzM1OTQsMC4zMTI0MTgyNTIyMjk2OTA1NSwwLjAxNzI5NjA3MDIzMjk4NzQwNCwwLjIxMTQ5NDc1ODcyNTE2NjMyLDAuMTA4MjkwODY2MDE3MzQxNjEsMC41MjcwMjIzMDIxNTA3MjYzLDAuMzUwOTc2MTY5MTA5MzQ0NSwwLjg3MjA1OTA0NzIyMjEzNzUsMC43MDc3ODUyNDg3NTY0MDg3LDEuMDAwOTczODIwNjg2MzQwMywwLjI3NTg1NzgzNjAwODA3MTksMC4wMDEwNTU2OTkxOTEwNTYxOTIsMC4xMjE4NTgyNDY2MjQ0Njk3NiwwLjEzNTYxMTM3MDIwNTg3OTIsMC42MzI2NDIyNjkxMzQ1MjE1LDAuMzA4MjY4MzY4MjQ0MTcxMTQsMC40MzQ4MzUxNjU3MzkwNTk0NSwwLjYzOTEyMzA4MjE2MDk0OTcsMC4wMTU4Mjg2Mzc0MDYyMjk5NzMsMC4wNjA0MTg2MTY5ODAzMTQyNTUsMC4wODEzMDc0NzgyNDkwNzMwMywwLjgyNjM3Mjg2MTg2MjE4MjYsMC42ODY5MTA4MDgwODYzOTUzLDEuNDM1MTk0ODQ5OTY3OTU2NSwxLjUzNDU3MjM2Mjg5OTc4MDMsMC4xNzY3Mjg2MjExMjUyMjEyNSwwLjc2MTE4MTk1MDU2OTE1MjgsMC4xOTg2NjI0NTk4NTAzMTEyOCwwLjAzNjQzNDQzMDYyOTAxNDk3LDAuNDA3MzUwMjQyMTM3OTA4OTQsMC44NjE3Njc2NDk2NTA1NzM3LDAuNjQ0MjkwNTA2ODM5NzUyMiwwLjEzMjkxNTA5NDQ5NDgxOTY0LDAuMDg5NjE3Nzk2MjQyMjM3MDksMC4wMTM0ODIxNDAzNzcxNjM4ODcsMC4zNzQ4NDQyNTMwNjMyMDE5LDAuNjI4MjcyMjk0OTk4MTY5LDAuNDg2OTQ4MDQzMTA3OTg2NDUsMC42MjMxNDE5NDQ0MDg0MTY3LDAuMzU0Mjc5MTAwODk0OTI4LDAuODU2MDIyNDE3NTQ1MzE4NiwxLjg1NTQwMjcwODA1MzU4ODksMC4wMTg2ODg2MzAzMTI2ODExOTgsMC41NTgxMTA3NzM1NjMzODUsMC44NTcyNjI2NzA5OTM4MDQ5LDEuMzQyMzc4ODU0NzUxNTg3LDAuMTUwMjUwODIyMzA1Njc5MzIsMC40NzQ5ODUwOTI4NzgzNDE3LDAuMTQ3ODc5MzkxOTA4NjQ1NjMsMC4yOTEyMDk4NzY1MzczMjMsMC42MzYyNTkzMTczOTgwNzEzLDAuMjA0MTQ3MTAwNDQ4NjA4NCwwLjA3NjYzMzcxNDEzOTQ2MTUyLDEuMTI2MDQwNDU4Njc5MTk5MiwxLjA4MDA5NTQxMDM0Njk4NDksMC4xMjM5NzI1MjAyMzIyMDA2MiwwLjE0NTg4NzU4MzQ5NDE4NjQsMi4xMDAyMDk3MTI5ODIxNzc3LDAuMjI3MTg1OTY0NTg0MzUwNTksMC45ODA3MTgxMzU4MzM3NDAyLDAuODA3NTQ5Mjk3ODA5NjAwOCwwLjA5NDY4OTM0Njg0OTkxODM3LDEuMzAzODgwMzMzOTAwNDUxNywwLjM2MjIwMTY2MDg3MTUwNTc0LDAuMTY3NjA1MjIxMjcxNTE0OSwwLjM5Mzc4MzE4MTkwNTc0NjQ2LDAuMDgzMTU4ODM1NzY4Njk5NjUsMC4xOTc5NjMzNDIwNzA1Nzk1MywwLjM0NTM0NjgzODIzNTg1NTEsMC4wODM1Mzc0NTE5MjI4OTM1MiwwLjcxODU1MTAzOTY5NTczOTcsMC41OTA1MTE5MTgwNjc5MzIxLDAuMTcwMDEyNjIzMDcxNjcwNTMsMC4wMjIzMzEyODI0OTY0NTIzMywxLjM0MzA0Nzk3NjQ5MzgzNTQsMC40MjkzODI0NzMyMzAzNjE5NCwyLjQ2OTE0OTU4OTUzODU3NCwwLjE3ODA3MTMzNDk1ODA3NjQ4LDAuNjQxNjI3NDMwOTE1ODMyNSwwLjcxNDM0NjI4OTYzNDcwNDYsMC4yNDI0NzY4MjA5NDU3Mzk3NSwwLjM3MTE2MDg5NDYzMjMzOTUsMS4xMjY2NzgzNDc1ODc1ODU0LDAuMjEwNTcwMTI2NzcxOTI2ODgsMC4wODI1OTk1NzI4MzczNTI3NSwwLjA2NDU4NTEwNDU4NDY5MzkxLDAuNzE1OTU4MzU2ODU3Mjk5OCwwLjA4NjE3NTQ3MTU0NDI2NTc1LDAuODI0OTM1MTM4MjI1NTU1NCwwLjUyNzY3ODE5MTY2MTgzNDcsMC4yMTM1OTM4NTU1MDAyMjEyNSwxLjY1NTkwMTU1MTI0NjY0MywyLjM2NzQ3MDI2NDQzNDgxNDUsMC4yNTAxNDkyNzk4MzI4Mzk5NywwLjU5ODY5ODE5ODc5NTMxODYsMC45NDc0MjIyMDY0MDE4MjUsMC4xNTMxMDAwODgyMzg3MTYxMywwLjAwOTE2NDcxNzk3OTcyOTE3Nl19fX19"
    }
  },
  "min_score": 1,
  "explain": true,
  "_source": {
    "includes": [
      "id",
      "pic_path"
    ],
    "excludes": []
  },
  "sort": [
    {
      "create_time": {
        "order": "desc"
      }
    }
  ],
  "track_total_hits": 2147483647
}

搜索圖片

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖,elasticsearch,springboot,java,elasticsearch,機器學習

搜索結果

elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖,elasticsearch,springboot,java,elasticsearch,機器學習

看到最后了一起薅個羊毛唄~

到了這里,關于elastic search java api 向量搜索實踐 / java結合es實現 以圖搜圖的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Spring Boot 整合 分布式搜索引擎 Elastic Search 實現 數據聚合

    Spring Boot 整合 分布式搜索引擎 Elastic Search 實現 數據聚合

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強大的開源搜索引擎,具備非常多強大功能,可以幫助我們從海量數據中快速找到需要的內容 本篇文章將講解 Elastic Search 如何實現數據聚合,以及 在項目實戰(zhàn)中如何通過數據聚合實現業(yè)務需求并完成功能。 以下為官方

    2024年02月11日
    瀏覽(32)
  • Spring Boot 整合 分布式搜索引擎 Elastic Search 實現 我附近的、酒店競排

    Spring Boot 整合 分布式搜索引擎 Elastic Search 實現 我附近的、酒店競排

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強大的開源搜索引擎,具備非常多強大功能,可以幫助我們從海量數據中快速找到需要的內容 在酒店列表頁的右側,有一個小地圖,點擊地圖的定位按鈕,地圖會找到你所在的位置: 點擊定位后,會發(fā)送給服務端以下請求

    2024年02月06日
    瀏覽(26)
  • ES搜索引擎入門+最佳實踐(九):項目實戰(zhàn)(二)--elasticsearch java api 進行數據增刪改查

    ? ? ? ? 本篇是這個系列的最后一篇了,在這之前可以先看看前面的內容: ES搜索引擎入門+最佳實踐(一)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(二)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(三)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(四)_flame.liu的博客

    2024年02月12日
    瀏覽(28)
  • 【搜索引擎】elastic search核心概念

    【搜索引擎】elastic search核心概念

    前言 本文不涉及ES的具體安裝下載、操作、集群的內容,這部分內容會放在后面一篇文章中。本文只包含ES的核心理論,看完本文再去學ES的細節(jié)會事半功倍。 目錄 1.由日志存儲引出的問題 2.什么是ES? 3.ES的數據結構 4.ES的核心原理 5.聯系作者 本文或者說本系列的來源: 前面

    2024年02月03日
    瀏覽(17)
  • fastapi結合Manticore Search、elasticsearch、mysql實現全文搜索

    fastapi結合Manticore Search、elasticsearch、mysql實現全文搜索

    創(chuàng)建測試表 測試表插入數據 表字段描述 字段意義 mysql數據同步到es es查看數據(Elasticvue插件) ? mysql數據同步到Manticore 注:Manticore 和 Mysql 使用pymysql即mysql客戶端 Manticore 數據查詢(工具Webyog SQLyog) ? es安全認證連接(參考官網) 按fields查詢方法封裝,輸入參數fields 篩選器,

    2024年02月12日
    瀏覽(19)
  • elastic search es 分組統計 aggs 次數用法

    參考鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html es 各個版本的語法可能會不一樣,如果大家在用的時候發(fā)現語法報錯了,請查閱相關版本的語法。 剛需要按 ip 地址統計某個接口的訪問次數,查了下 es 分組統計次數 aggs 的用法,特此記錄一下,方

    2024年02月11日
    瀏覽(13)
  • 使用docker安裝elastic search[ES]和kibana

    使用docker安裝elastic search和kibana,版本均為7.17.1 docker pull# 去dockerhub看具體版本,這里用7.17.1 臨時安裝生成文件# 參數說明 -d 后臺啟動 –name 起別名即:NAMES -p 9200:9200 將端口映射出來 elasticsearch的9200端口是供外部訪問使用;9300端口是供內部訪問使用集群間通訊 -e “discovery.

    2024年02月14日
    瀏覽(20)
  • 微服務 分布式搜索引擎 Elastic Search RestAPI

    微服務 分布式搜索引擎 Elastic Search RestAPI

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強大的開源搜索引擎,具備非常多強大功能,可以幫助我們從海量數據中快速找到需要的內容 ES官方提供了各種不同語言的客戶端,用來操作ES。這些客戶端的本質就是組裝DSL語句,通過http請求發(fā)送給ES。官方文檔地址:

    2024年01月24日
    瀏覽(23)
  • 微服務分布式搜索引擎 Elastic Search RestClient 操作文檔

    微服務分布式搜索引擎 Elastic Search RestClient 操作文檔

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強大的開源搜索引擎,具備非常多強大功能,可以幫助我們從海量數據中快速找到需要的內容 初始化RestHighLevelClient 為了與索引庫操作分離,我們再次參加一個測試類,做兩件事情: 初始化RestHighLevelClient 我們的酒店數據

    2024年01月24日
    瀏覽(25)
  • 【elastic search】JAVA操作elastic search

    【elastic search】JAVA操作elastic search

    目錄 1.環(huán)境準備 2.ES JAVA API 3.Spring Boot操作ES 本文是作者ES系列的第三篇文章,關于ES的核心概念移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 關于ES的下載安裝教程以及基本使用,移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 在前文

    2024年01月25日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包