0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Elasticsearch存在的各種漏洞問題

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-30 10:40 ? 次閱讀

elasticsearch 8

之前使用的一個老系統(tǒng)使用了elasticsearch7.x版本,之后又反應(yīng)es版本存在各種漏洞

圖片

無奈只能做版本升級來解決問題,計劃是將版本升級到8.x,在網(wǎng)上了解了下兩個版本的區(qū)別,主要包括以下變化:

  1. Rest API相比較7.x而言做了比較大的改動(比如徹底刪除_type),為了降低用戶的升級成本,8.x會暫時的兼容7.x的請求。
  2. 默認開啟安全配置(三層安全),并極大簡化了開啟安全需要的工作量,可以這么說:7.x開啟安全需要10步復(fù)雜的步驟比如CA、證書簽發(fā)、yml添加多個配置等等,8.x只需要一步即可)。
  3. 存儲空間優(yōu)化:更新了倒排索引,對倒排文件使用新的編碼集,對于keyword、match_only_text、text類型字段有效,有3.5%的空間優(yōu)化提升,對于新建索引和segment自動生效。
  4. 優(yōu)化geo_point,geo_shape類型的索引(寫入)效率:15%的提升。
  5. 新特性:支持上傳pyTorch模型,在ingest的時候使用。比如在寫入電影評論的時候,如果我們想要知道這個評論的感情正負得分,可以使用對應(yīng)的AI感情模型對評論進行運算,將結(jié)果一并保存在ES中。
  6. 技術(shù)預(yù)覽版KNN API發(fā)布,(K鄰近算法),跟推薦系統(tǒng)、自然語言排名相關(guān)。之前的KNN是精確搜索,在大數(shù)據(jù)集合的情況會比較慢,新的KNN提供近似KNN搜索,以提高速度。
  7. 對ES內(nèi)置索引的保護加強了:elastic用戶默認只能讀,如果需要寫權(quán)限的時候,需有allow_restrict_access權(quán)限。

那么在基于spring-boot的開發(fā)時,我們大概需要做些對應(yīng)的調(diào)整了,要包括以下幾點:

  • spring-data-elasticsearch版本升級
  • 客戶端依賴由elasticsearch-rest-high-level-client調(diào)整為elasticsearch-java
  • JDK版本升級到17

借著這個機會,重溫下es相關(guān)的知識……

創(chuàng)建索引

  • 基于Elasticsearch Rest API

PUT localhost:9200/index_novel

{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fields": {
          "keyword": { "ignore_above": 256, "type": "keyword" }
        }
      },
      "author": { "type": "keyword" },
      "category": { "type": "keyword"  },
      "type": { "type": "keyword"  },
      "description": { "analyzer": "ik_max_word", "type": "text" },
      "content": { "analyzer": "ik_max_word", "type": "text" },
      "coverUrl": { "type": "text" },
      "insertTime": { "format": "date_time", "type": "date" },
      "updateTime": { "format": "date_time", "type": "date" },
      "status": { "type": "keyword" }
    }
  }
}
  • 基于SpringBoot創(chuàng)建
  1. 定義Novel實體
@Data
@Document(indexName = "index_novel")
public class Novel {

}
  1. 定義Repository
public interface NovelDao extends ElasticsearchDao< Novel, String > {  }
  1. 啟用Elasticsearch Repositories支持
@EnableElasticsearchRepositories

4主要實現(xiàn)在SimpleElasticsearchRepository中:

public SimpleElasticsearchRepository(ElasticsearchEntityInformation< T, ID > metadata,
        ElasticsearchOperations operations) {
    this.operations = operations;

    Assert.notNull(metadata, "ElasticsearchEntityInformation must not be null!");

    this.entityInformation = metadata;
    this.entityClass = this.entityInformation.getJavaType();
    this.indexOperations = operations.indexOps(this.entityClass);

    if (shouldCreateIndexAndMapping() && !indexOperations.exists()) {
        indexOperations.createWithMapping();
    }
}

字段類型

Elasticsearch 支持多種字段類型,每種類型都有其獨特的作用和功能。其中常見的字段類型包括:

  • Text:用于存儲文本內(nèi)容,支持全文搜索、模糊搜索、正則表達式搜索等功能。
  • Keyword:用于存儲關(guān)鍵詞,支持精確匹配和聚合操作。
  • Date:用于存儲日期時間類型的數(shù)據(jù),支持日期范圍查詢、日期格式化等功能。
  • Numeric:用于存儲數(shù)值類型的數(shù)據(jù),支持數(shù)值范圍查詢、聚合操作等功能。
  • Boolean:用于存儲布爾類型的數(shù)據(jù),支持精確匹配和聚合操作。
  • Geo-point:用于存儲地理位置信息,支持距離計算、地理位置聚合等功能。
  • Object:用于存儲復(fù)雜的結(jié)構(gòu)化數(shù)據(jù),支持嵌套查詢、嵌套聚合等功能。

text

Es中的text類型是一種用于處理長文本的數(shù)據(jù)類型,適合于全文搜索和分析。當(dāng)將文本字段映射為text類型時,文本會被分析器分詞處理成一個個單詞, 然后被存儲在倒排索引中,以便后續(xù)進行全文搜索。text類型支持多種分析器和過濾器,可以對不同的文本進行不同的分詞處理,以達到最佳的搜索效果。此外, text類型還支持詞項位置信息和偏移量信息的存儲,以便進行精確的搜索和高亮顯示。

keyword

ES把keyword類型的值作為一整體存在倒排索引中,不進行分詞。 keyword適合存結(jié)構(gòu)化數(shù)據(jù),如性別、手機號、數(shù)據(jù)狀態(tài)、標(biāo)簽HttpCode(404,200,500)等。 字段常用來精確查詢、過濾、排序、聚合時,應(yīng)設(shè)為keyword,而不是數(shù)值型。 如果某個字段你經(jīng)常用來做range查詢, 你還是設(shè)置為數(shù)值型(integer,long),ES對數(shù)字的range有優(yōu)化。 還可以把字段設(shè)為multi-field,這樣又有keyword類型又有數(shù)值類型,方便多種方式的使用。 最長支持32766個UTF-8類型的字符,但放入倒排索引時,只截取前一段字符串,長度由ignore_above參數(shù)決定,默認"ignore_above" : 256。

Auto

在spring中,支持一種auto的數(shù)據(jù)類型,通過在字段上添加注解實現(xiàn)@Field(type = FieldType.Auto),Auto申明的類型除了生成一個text類型字段外,還會多一個.keyword的keyword類型的字段。

@Field(type = FieldType.Auto)
    private String title;

上面對應(yīng)的mapping:

{
  "title": {
    "type": "text",
    "fields": {
      "keyword": {
        "ignore_above": 256,
        "type": "keyword"
      }
    }
  }
}

fields可以讓同一文本有多種不同的索引方式,比如上面text類型的字段title,可以使用text類型做全文檢索,使用keyword類型做聚合和排序。

通過這種方式,可以實現(xiàn)一個字段運用于不同的場景。要知道字段類型的使用場景是受限的。在mapping中通過添加fields的擴展字段, 讓一個字段擁有多個子字段類型,使得一個字段能夠被多個不同的索引方式進行索引。

查詢

以下是 Elasticsearch 中所有的查詢類型:

Match Query:用于匹配文本類型字段中的文本。
Multi-match Query:用于在多個字段中匹配文本類型字段中的文本。
Term Query:用于匹配非文本類型字段(如數(shù)字、布爾值等)中的確切值。
Terms Query:用于匹配非文本類型字段(如數(shù)字、布爾值等)中的多個確切值。
Range Query:用于匹配數(shù)字、日期等范圍內(nèi)的值。
Exists Query:用于匹配指定字段是否存在值。
Prefix Query:用于匹配以指定前綴開頭的文本。
Wildcard Query:用于匹配包含通配符的文本。
Regexp Query:用于使用正則表達式匹配文本。
Fuzzy Query:用于匹配類似但不完全匹配的文本。
Type Query:用于匹配指定類型的文檔。
Ids Query:用于根據(jù)指定的文檔 ID 匹配文檔。
Bool Query:用于組合多個查詢條件,支持AND、OR、NOT等邏輯操作。
Boosting Query:用于根據(jù)指定的查詢條件調(diào)整文檔的權(quán)重。
Constant Score Query:用于為所有匹配的文檔分配相同的分數(shù)。
Function Score Query:用于根據(jù)指定的函數(shù)為匹配的文檔分配自定義分數(shù)。
Dis Max Query:用于在多個查詢條件中選擇最佳匹配的文檔。
More Like This Query:用于根據(jù)文檔內(nèi)容查找相似的文檔。
Nested Query:用于在嵌套對象中查詢。
Geo Distance Query:用于查詢地理坐標(biāo)范圍內(nèi)的地點。
Span Term Query:用于匹配指定的單個術(shù)語。
Span Multi Term Query:用于匹配指定的多個術(shù)語。
Span First Query:用于匹配文檔中的首個匹配項。
Span Near Query:用于匹配多個術(shù)語之間的近似距離。
Span Or Query:用于匹配任何指定的術(shù)語。
Span Not Query:用于匹配不包含指定術(shù)語的文檔。
Script Query:用于根據(jù)指定的腳本匹配文檔。

下面看下一些常用的簡單查詢,后面的復(fù)合查詢以及聚合查詢都是基于這些簡單查詢來組合嵌套來實現(xiàn)。

URL : POST localhost:9200/index_novel/_search

match

根據(jù)關(guān)鍵字對某個字段進行檢索,當(dāng)然傳入的參數(shù)會先進行分詞,然后進行匹配

{
  "_source": ["title","author","type","category","description","status","updateTime"],
  "query": {
    "match": {
      "title": {
        "query": "天下",
        "minimum_should_match": "30%"
      }
    }
  }
}

match_phrase

詞項匹配(查詢分詞的詞項必須完全匹配到索引分詞的詞項中,并且詞項的相對位置position必須一致),分詞后的相對位置也必須要精準(zhǔn)匹配(slop)

{
  "_source": ["title","author","type","category","description","status","updateTime"],
  "query": {
    "match_phrase": {
      "title" : {"query": "天下", "slop": "1"}
    }
  }
}

term

根據(jù)詞條完全匹配,也就是精確查詢,搜索前不會對搜索詞進行分詞解析,直接對搜索詞進行查找;

{
  "_source": ["title","author","type","category","description","status","updateTime"],
  "query": {
    "term": { "author": "淚冠哀歌" }
  }
}

復(fù)合查詢

bool

query和filter兩種不同的Context

  • query context:相關(guān)性算分
  • filter context:不需要算分 ( yes or no ),可以緩存cache,性能更高

bool一共支持4中查詢,每一種子查詢都可以嵌套多個簡單查詢

  • must 必須匹配某些條件才可以返回,計算分值
  • must_not 必須不匹配某些條件,不計算分值
  • should 當(dāng)滿足此條件時,計算分值
  • filter 必須匹配,不會計算分值
{
    "query":{
        "bool":{
            "filter":{
                "term":{ "title":"遮天" }
            },
            "should":[
                {
                    "match": { "title":"遮天" }
                }
            ],
            "must":[
                {
                    "match":{ "title":"遮天" }
                }
            ]
        }
    }
}

constant_score

查詢返回的相似度分與字段上指定boost參數(shù)值相同的數(shù)據(jù)

{
  "_source": ["title","author","type","category","description","status","updateTime"],
  "query": {
    "constant_score": {
      "filter": {
        "term": {
          "description": "天下"
        }
      },
      "boost": 1
    }
  }
}

dis_max

最大析取(disjunction max) 返回的文檔必須要滿足多個查詢子句中的一項條件; 若一個文檔能匹配多個查詢子句時,則dis_max查詢將為能匹配上查詢子句條件的項增加額外分,即針對多個子句文檔有一項滿足就針對滿足的那一項分配更高分, 這也能打破在多個文檔都匹配某一個或多個條件時分數(shù)相同的情況;

{
  "_source": ["title","author","type","category","description","status","updateTime"],
  "query": {
    "dis_max": {
      "tie_breaker": 0.7,
      "queries": [
        {
          "term": {
            "description": "天下"
          }
        }
      ]
    }
  }
}

聚合查詢

聚合(aggregations)可以讓我們極其方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運算。例如:

語法:

{
  "aggs": {
    "自定義聚合名稱": {
      "聚合類型": {
          "聚合參數(shù)": "參數(shù)值"
        }
    }
  }
}
  • 聚合類型
    • Terms(詞條聚合):按照字段值進行分組,統(tǒng)計每個分組的文檔數(shù)量。
    • Sum(求和聚合):計算指定字段的總和。
    • Avg(平均值聚合):計算指定字段的平均值。
    • Min(最小值聚合):找出指定字段的最小值。
    • Max(最大值聚合):找出指定字段的最大值。
    • Stats(統(tǒng)計聚合):計算指定字段的統(tǒng)計信息,包括最小值、最大值、總和、平均值和文檔數(shù)量。
    • Extended Stats(擴展統(tǒng)計聚合):計算指定字段的擴展統(tǒng)計信息,包括最小值、最大值、總和、平均值、標(biāo)準(zhǔn)差和文檔數(shù)量。
    • Cardinality(基數(shù)聚合):計算指定字段的唯一值數(shù)量。
    • Date Histogram(日期直方圖聚合):按照時間間隔對日期字段進行分組。
    • Range(范圍聚合):將文檔按照指定范圍進行分組,例如按照價格范圍、年齡范圍等。
    • Nested(嵌套聚合):在嵌套字段上執(zhí)行子聚合操作。
  • 聚合參數(shù)
    • field(字段):指定要聚合的字段。
    • size(大?。合拗品祷氐木酆贤暗臄?shù)量。
    • script(腳本):使用腳本定義聚合邏輯。
    • min_doc_count(最小文檔數(shù)量):指定聚合桶中文檔的最小數(shù)量要求。
    • order(排序):按照指定字段對聚合桶進行排序。
    • include/exclude(包含/排除):根據(jù)指定的條件包含或排除聚合桶。
    • format(格式):對聚合結(jié)果進行格式化。
    • precision_threshold(精度閾值):用于基數(shù)聚合的精度控制。
    • interval(間隔):用于日期直方圖聚合的時間間隔設(shè)置。
    • range(范圍):用于范圍聚合的范圍定義。

分頁

  • from-size
    • 查詢優(yōu)點
  1. 支持隨機翻頁
  • 查詢?nèi)秉c
  1. 受制于 max_result_window 設(shè)置,不能無限制翻頁。
  2. 存在深度翻頁問題,越往后翻頁越慢。
  • From + size 查詢適用場景
  1. 第一:非常適合小型數(shù)據(jù)集或者大數(shù)據(jù)集返回 Top N(N <= 10000)結(jié)果集的業(yè)務(wù)場景。
  2. 第二:類似主流 PC 搜索引擎(谷歌、bing、百度、360、sogou等)支持隨機跳轉(zhuǎn)分頁的業(yè)務(wù)場景。
  • search_after
    • search_after 優(yōu)點
  1. 不嚴格受制于 max_result_window,可以無限制往后翻頁。 ps:不嚴格含義:單次請求值不能超過 max_result_window;但總翻頁結(jié)果集可以超過。
  • search_after 缺點
  1. 只支持向后翻頁,不支持隨機翻頁。
  • search_after 適用場景
  1. 類似:今日頭條分頁搜索 https://m.toutiao.com/search 不支持隨機翻頁,更適合手機端應(yīng)用的場景。
  • scroll
    • scroll 查詢優(yōu)點
  1. 支持全量遍歷。 ps:單次遍歷的 size 值也不能超過 max_result_window 大小。
  • scroll 查詢?nèi)秉c
  1. 響應(yīng)時間非實時。
  2. 保留上下文需要足夠的堆內(nèi)存空間。
  • scroll 查詢適用場景
  1. 全量或數(shù)據(jù)量很大時遍歷結(jié)果數(shù)據(jù),而非分頁查詢。
  2. 官方文檔強調(diào):不再建議使用scroll API進行深度分頁。如果要分頁檢索超過 Top 10,000+ 結(jié)果時,推薦使用:PIT + search_after。

排序

和關(guān)系型數(shù)據(jù)庫一樣,對關(guān)鍵屬性進行升序或降序返回數(shù)據(jù)。但是要注意,字段不能是text類型

{
  "sort": { 
    "insertTime": { "order": "desc" }
  }
}

高亮

我們可能有這樣的需求,在檢索結(jié)果中,將檢索關(guān)鍵詞進行高亮展示,就像百度搜索的結(jié)果,標(biāo)題和描述中都標(biāo)記為紅色了,elasticsearch同樣支持這樣的查詢, 返回的高亮內(nèi)容主要是通過`'元素包裹,當(dāng)然可以通過配置修改。需要注意的是,設(shè)置的高亮字段需要和檢索字段匹配。

{
  "highlight": {
    "pre_tags": [
      ""
    ],
    "post_tags": [
      ""
    ],
    "fields": {
      "description": {
        "fragment_size": 100, 
        "number_of_fragments": 5
      }
    }
  }
}

集成

Elasticsearch與SpringBoot的集成非常簡單:

  1. 引入依賴
< dependency >
  < groupId >org.springframework.boot< /groupId >
  < artifactId >spring-boot-starter-web< /artifactId >
< /dependency >

< dependency >
  < groupId >org.springframework.boot< /groupId >
  < artifactId >spring-boot-starter-data-elasticsearch< /artifactId >
< /dependency >
  1. 編寫文檔對應(yīng)實體,申明索引信息
    通過@org.springframework.data.elasticsearch.annotations.Document注解可以定定義索引信息,比如是否在系統(tǒng)啟動后自動創(chuàng)建
    通過@org.springframework.data.elasticsearch.annotations.Field定義各個字段類型等信息
@Data
@Document(indexName = "index_novel")
public class Novel {
  // 省略 ...
  @Field(type = FieldType.Auto)
  private String title;

  @Field(type = FieldType.Keyword)
  private String author;

  @Field(type = FieldType.Keyword)
  private String type;

  @Field(type = FieldType.Text, analyzer = "ik_max_word")
  private String description;

  @Field(type = FieldType.Text, analyzer = "ik_max_word")
  private String content;
  // 省略...
}
  1. 定義DAO抽象接口與代理實現(xiàn)
    通過自定義接口方便擴展,當(dāng)ElasticsearchRepository中提供的方法無法支持時,可以根據(jù)業(yè)務(wù)需求自定義查詢方式
    在BaseElasticsearchRepository中,可以基于ElasticsearchOperations自定義各種復(fù)雜查詢
public interface ElasticsearchDao< T, ID > extends ElasticsearchRepository< T, ID >{
    
}
public class BaseElasticsearchRepository< T,ID > extends SimpleElasticsearchRepository< T,ID > implements ElasticsearchDao< T,ID >{
  private ElasticsearchEntityInformation entityInformation;
  private ElasticsearchOperations elasticsearchOperations;

  public BaseElasticsearchRepository(ElasticsearchEntityInformation metadata, ElasticsearchOperations operations) {
    super(metadata, operations);
    this.entityInformation = metadata;
    this.elasticsearchOperations = operations;
  }
}
public interface NovelDao extends ElasticsearchDao< Novel, String > {

}
  1. 啟用Repository并配置DAO的通用實現(xiàn)
@SpringBootApplication
@EnableElasticsearchRepositories(basePackages = "com.sucl.springbootelasticsearch8.dao", repositoryBaseClass = BaseElasticsearchRepository.class)
public class SpringbootElasticsearch8Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootElasticsearch8Application.class, args);
    }

}
  1. 在Service層的使用
@Service
public class NovelService {

  private NovelDao novelDao;

  public NovelService(NovelDao novelDao) {
    this.novelDao = novelDao;
  }
}

基于SpringBoot對Elasticsearch的繼承整體比較簡單,由于ES的查詢種類非常多,在Spring中提供了與DSL QUERY對應(yīng)的API可以使用,只不過沒法通過通用的SimpleElasticsearchRepository中實現(xiàn)。

示例

現(xiàn)在基于ES8做了一個簡單的示例,主要包括以下功能:

  1. 從起點小說網(wǎng)按類型加載小說到es
  2. 基于spring-boot-starter-data-elasticsearch實現(xiàn)小說句的檢索
  • 起點小說數(shù)據(jù)加載到elasticsearch,主要實現(xiàn)方式是通過工具jsoup解析小說網(wǎng)站的,并按文檔結(jié)構(gòu)組裝文檔數(shù)據(jù),并調(diào)用es API將數(shù)據(jù)存儲到es中,大概有以下幾個過程
  1. 訪問起點小說網(wǎng)https://www.qidian.com/free/all/,根據(jù)傳入的分類與頁碼參數(shù)按頁獲取頁面html
  2. 解析上一步html,分別獲取每個小說目錄html片段,解析成一部小說文檔數(shù)據(jù)
  3. 按目錄分別加載每個章節(jié)頁面html,按章節(jié)分別加載章節(jié)小說內(nèi)容,最后將所有內(nèi)容拼接到小說文檔數(shù)據(jù)中
  4. 調(diào)用API將小說數(shù)據(jù)存儲到elasticsearch
  5. 篇幅有限,具體實現(xiàn)可以參考下面的github
  • 小說查詢相關(guān)DAO可以參考上面的集成
  • 添加service與controller
@Service
public class NovelService {

  private NovelDao novelDao;

  public NovelService(NovelDao novelDao) {
    this.novelDao = novelDao;
  }

  /**
   * 批量保存
   * @param novels
   * @return
   */
  public List< Novel > saveNovels(List< Novel > novels) {
    List< Novel > savedNovels = new ArrayList<  >();
    novels.forEach(this::configureNovel);
    novelDao.saveAll(novels).forEach(savedNovels::add);
    return savedNovels;
  }

  /**
   * 根據(jù)關(guān)鍵字在指定字段值檢索
   * @param keyword
   * @param fields
   * @return
   */
  public List< Novel > searchNovels(String keyword, String[] fields) {
    DslQuery dslQuery = DslQuery.of(DslQuery.Type.MULTI_MATCH, String.join(",",fields), keyword);
    return novelDao.commonQuery(dslQuery, null);
  }
  
  /**
   * 根據(jù)主鍵查詢單條數(shù)據(jù),按指定字段查找相似數(shù)據(jù)
   * @param novel
   * @param fields
   * @param pageable
   * @return
   */
  public Page< Novel > getPageSimilarNovel(Novel novel, String[] fields, Pager pager) {
    return novelDao.searchSimilar(novel, fields, PageRequest.of(pager.getPageIndex(), pager.getPageSize()));
  }
  
}

示例內(nèi)容涉及到Elasticsearch DSL QUERY組裝過程以及上面說到的SimpleElasticsearchRepository不足以支撐業(yè)務(wù)查詢時的一些擴展方法。 示例使用了起點小說網(wǎng)站加載小說數(shù)據(jù),其他網(wǎng)站實現(xiàn)思路一樣。由于篇幅原因,具體代碼實現(xiàn)可以參考:

https://github.com/sucls/springboot-elasticsearch-8

結(jié)束語

Elasticsearch版本有7.x升級到8.x時,不僅僅是客戶端的變更,運行環(huán)境也有較大的改變,Spring版本也做了大版本升級。最后在項目里僅僅是修改了客戶端用來匹配與es服務(wù)交互時,保證請求響應(yīng)的過程沒有問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4172

    瀏覽量

    85483
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3062

    瀏覽量

    48575
  • 漏洞
    +關(guān)注

    關(guān)注

    0

    文章

    203

    瀏覽量

    15333
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    279

    瀏覽量

    13309
  • Elasticsearch
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    2815
收藏 人收藏

    評論

    相關(guān)推薦

    Windows安裝ElasticSearch

    Windows安裝ElasticSearch
    的頭像 發(fā)表于 02-15 17:09 ?934次閱讀
    Windows安裝<b class='flag-5'>ElasticSearch</b>

    linux安裝配置ElasticSearch之源碼安裝

    ElasticSearch是基于Lucene這個非常成熟的索引方案,另加上一些分布式的實現(xiàn):集群,sharding,replication等。以下是對其采用源碼安裝的方法1.下載
    發(fā)表于 01-11 17:27

    ElasticSearch的詞條查詢

    ElasticSearch查詢 第三篇:詞條查詢
    發(fā)表于 04-30 17:03

    ElasticSearch的初步環(huán)境

    ElasticSearch最實用入門指南——初步環(huán)境
    發(fā)表于 03-31 11:32

    PCB設(shè)計中存在漏洞有哪些?

    現(xiàn)如今,PCB設(shè)計的技術(shù)雖然不斷提升,但不代表PCB設(shè)計工藝過程中沒有問題。其實,任何領(lǐng)域或多或少都存在問題。本文我們就說說PCB設(shè)計中存在的那些漏洞,希望各位工程師遇到同樣問題可以避免入坑!
    發(fā)表于 10-30 07:55

    采用ZigBee協(xié)議的智能家居設(shè)備存在漏洞嗎?

    采用ZigBee協(xié)議的智能家居設(shè)備存在漏洞嗎?
    發(fā)表于 05-19 06:21

    elasticsearch介紹PPT

    elasticsearch介紹PPT
    發(fā)表于 12-13 21:05 ?20次下載

    Spring-Elasticsearch插件說明

    Spring-Elasticsearch插件說明
    發(fā)表于 12-13 21:05 ?0次下載

    Elasticsearch6.1教程

    Elasticsearch6.1教程
    發(fā)表于 07-04 14:40 ?0次下載

    ElasticSearch是什么?應(yīng)用場景是什么?

    ElasticSearch是什么 ElasticSearch的功能 ElasticSearch的應(yīng)用場景 ElasticSearch的特點
    的頭像 發(fā)表于 10-09 18:38 ?2376次閱讀

    MySQL數(shù)據(jù)如何同步Elasticsearch

    大家應(yīng)該都在各種電商網(wǎng)站檢索過商品,檢索商品一般都是通過什么實現(xiàn)呢?搜索引擎Elasticsearch
    的頭像 發(fā)表于 03-24 13:44 ?972次閱讀

    Elasticsearch保姆級入門

    我們需要創(chuàng)建一個供 Elasticsearch 和 Kibana 使用的 network。這個 network 將被用于 Elasticsearch 和 Kibana 之間的通信。
    的頭像 發(fā)表于 09-01 15:24 ?774次閱讀
    <b class='flag-5'>Elasticsearch</b>保姆級入門

    SpringBoot 連接ElasticSearch的使用方式

    在上篇 ElasticSearch 文章中,我們詳細的介紹了 ElasticSearch各種 api 使用。 實際的項目開發(fā)過程中,我們通?;谀承┲髁骺蚣芷脚_進行技術(shù)開發(fā),比如
    的頭像 發(fā)表于 10-09 10:35 ?791次閱讀

    Python 更新 Elasticsearch 的幾種方法

    今天總結(jié)一下通過 Python 更新 Elasticsearch 數(shù)據(jù)的幾個方法 Elasticsearch 是一個實時的分布式搜索分析引擎,它能讓你以前所未有的速度和規(guī)模,去探索你的數(shù)據(jù)。它被用作
    的頭像 發(fā)表于 11-01 10:11 ?1057次閱讀
    Python 更新 <b class='flag-5'>Elasticsearch</b> 的幾種方法

    蘋果承認GPU存在安全漏洞

    蘋果公司近日確認,部分設(shè)備中的圖形處理器存在名為“LeftoverLocals”的安全漏洞。這一漏洞可能影響由蘋果、高通、AMD和Imagination制造的多種圖形處理器。根據(jù)報告,iPhone 12和M2 MacBook A
    的頭像 發(fā)表于 01-18 14:26 ?583次閱讀