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

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x

這篇具有很好參考價(jià)值的文章主要介紹了如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

大型語言模型(LLM)每天都在發(fā)展,這種情況有助于語義搜索的擴(kuò)展。 LLM 擅長分析文本和揭示語義相似性。 這種情況也反映在搜索引擎上,因?yàn)檎Z義搜索引擎可以為用戶提供更滿意的結(jié)果。

盡管大型語言模型可以捕獲語義上接近的結(jié)果,但在搜索結(jié)果中實(shí)施過濾器對(duì)于增強(qiáng)用戶體驗(yàn)至關(guān)重要。 例如,合并基于日期或類別的過濾器可以顯著提高更令人滿意的搜索體驗(yàn)。 那么,如何才能有效地將語義搜索與過濾結(jié)合起來呢?

在今天的展示中,我將使用最新的 Elastic Stack 8.9.0 來進(jìn)行展示。為了方便大家學(xué)習(xí),所有數(shù)據(jù)請(qǐng)?jiān)诘刂?https://github.com/liu-xiao-guo/elasticsearch-vector-search/?進(jìn)行下載。

安裝

如果你還沒有安裝好自己的 Elasticsearch 及 Kibana,請(qǐng)參考我之前的文章:

  • 如何在 Linux,MacOS 及 Windows 上進(jìn)行安裝 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安裝 Elastic 棧中的 Kibana

在安裝的時(shí)候,我們選擇最新的 Elastic Stack 8.x 來進(jìn)行安裝。在默認(rèn)的情況下,Elasticsearch 是帶有 HTTPS 安全訪問的。在 Elasticsearch 第一次啟動(dòng)時(shí),我們記錄下超級(jí)用戶 elastic 的用戶名及密碼:

? Elasticsearch security features have been automatically configured!
? Authentication is enabled and cluster connections are encrypted.
 
??  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  p1k6cT4a4bF+pFYf37Xx
 
??  HTTP CA certificate SHA-256 fingerprint:
  633bf7f6e4bf264e6a05d488af3c686b858fa63592dc83999a0d77f7e9fe5940
 
??  Configure Kibana to use this cluster:
? Run Kibana and click the configuration link in the terminal when Kibana starts.
? Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjkuMCIsImFkciI6WyIxOTIuMTY4LjAuMzo5MjAwIl0sImZnciI6IjYzM2JmN2Y2ZTRiZjI2NGU2YTA1ZDQ4OGFmM2M2ODZiODU4ZmE2MzU5MmRjODM5OTlhMGQ3N2Y3ZTlmZTU5NDAiLCJrZXkiOiJ3WEE3MDRrQkxxWTFWWGY0QWRHbDpCa0VZVXZmaFFidWNPOFUxdXJwXzZnIn0=
 
??  Configure other nodes to join this cluster:
? On this node:
  ? Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ? Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ? Restart Elasticsearch.
? On other nodes:
  ? Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.

詞匯搜索 - 基本搜索

讓我們首先從 Elasticsearch 連接和基本搜索查詢開始。我們使用 Python 進(jìn)行展示。我們需要安裝需要的 Python 包:

pip3 install elasticsearch
pip3 install Config

有關(guān) Elasticsearch 的連接,請(qǐng)參考 “Elasticsearch:關(guān)于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x”。我們?cè)谙螺d的代碼里修改如下的文件 simple.cfg:

simple.cfg

ES_PASSWORD: "p1k6cT4a4bF+pFYf37Xx"
ES_FINGERPRINT: "633bf7f6e4bf264e6a05d488af3c686b858fa63592dc83999a0d77f7e9fe5940"

上面的 ES_PASSWORD 是我們?cè)?Elasticsearch 第一次啟動(dòng)時(shí)顯示的密碼,而?ES_FINGERPRINT 的值是 http_ca.crt 的 fingerprint。我們也可以在 Elasticsearch 第一次啟動(dòng)的時(shí)候看到。如果你已經(jīng)找不到這個(gè)顯示,那么你可以參考文章 “Elasticsearch:關(guān)于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x” 來了解如何獲得這個(gè)。另外一種比較簡(jiǎn)單的方法就是打開 config/kibana.yml 這個(gè)文件:

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

我們使用 jupyter 來打開文件?es-intro.ipynb:

from elasticsearch import Elasticsearch
from config import Config

with open('simple.cfg') as f:
    cfg = Config(f)

print(cfg['ES_FINGERPRINT'])
print(cfg['ES_PASSWORD'])

client = Elasticsearch(
    'https://localhost:9200',
    ssl_assert_fingerprint = cfg['ES_FINGERPRINT'],
    basic_auth=('elastic', cfg['ES_PASSWORD'])
)

client.info()

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

很顯然我們的代碼連接到 Elasticsearch 是成功的。

我們使用如下的代碼來讀取文件:

import json
with open('data.json', 'r') as f:
    data = json.load(f)

for book in data:
    print(book)

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

我將在這篇文章中使用的數(shù)據(jù)集是由 ChatGPT 生成的,并遵循上述格式。

我們首先檢查是否已經(jīng)有 book_index 索引被創(chuàng)建。如果有,就刪除該索引:

INDEX_NAME = "book_index"
 
if(client.indices.exists(index=INDEX_NAME)):
    print("The index has already existed, going to remove it")
    client.options(ignore_status=404).indices.delete(index=INDEX_NAME)

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

?我們使用如下的代碼來寫入數(shù)據(jù)到 Elasticsearch:

book_mappings = {
    "properties": {
        "title": {"type": "text"},
        "author": {"type": "text"},
        "date": {"type": "date"}
    }
}

client.indices.create(index = INDEX_NAME, mappings = book_mappings)

for each in data:
    client.index(index = INDEX_NAME, document = each)
client.indices.refresh()

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

上面顯示已經(jīng)寫入 14 個(gè)文檔。我們使用如下的代碼來顯示所有的文檔:

# GET ALL DOCUMENTS
resp = client.search(index='book_index', query={"match_all": {}})
for hit in resp['hits']['hits']:
    print(hit['_source'])

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

?為了對(duì)索引中的文檔應(yīng)用過濾,我們需要修改 “query” 參數(shù)。 要搜索文本中的單詞,我們將使用 “match” 關(guān)鍵字:

# FILTERING - MATCH
resp = client.search(index='book_index', 
                     query={
                         "match":
                         {"title": "Data"}
                     })
for hit in resp['hits']['hits']:
    print(hit['_score'], hit['_source'])

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

我們列出了索引中 “title” 字段中包含 “Data”一詞的文檔。

如果你想跨多個(gè)字段應(yīng)用過濾,可以使用 “bool” 操作來實(shí)現(xiàn)。 如果你不希望某些字段影響搜索中的分?jǐn)?shù),你可以在 “filter” 中指定它們。

# FILTERING - COMBINE FILTERS
resp = client.search(index='book_index', 
                     query={
                         "bool": {
                             "must": [
                                #  {"match": {"title": "data"}},
                                 {"match": {"author": "Smith"}},
                                 {"range": {"date": {"gte": "2023-08-01"}}}
                             ]
                         }
                     })
for hit in resp['hits']['hits']:
    print(hit)
如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python
使用 bool 運(yùn)算的 Elasticsearch 搜索查詢

有關(guān) Elasticsearch 查詢的更多信息,你可以在此處查看。

現(xiàn)在,讓我們創(chuàng)建包含文檔向量的相同索引。 在這篇文章中,我將使用 Sentence-Transformers 庫和 “all-mpnet-base-v2” 模型。 模型使用沒有限制,因此你可以選擇任何您想要的模型。 你可以在此處探索更多模型。

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('all-mpnet-base-v2')
model

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

?我們通過如下的方式來查看模型的維度大小:

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

我們使用如下的代碼來檢查索引 vector_index 是否已經(jīng)存在,如果已經(jīng)存在那么久刪除它:

INDEX_NAME_VECTOR = "vector_index"
if(client.indices.exists(index = INDEX_NAME_VECTOR)):
    print("The index has already existed, going to remove it")
    client.options(ignore_status=404).indices.delete(index = INDEX_NAME_VECTOR)
vector_mapping = {
    "properties": {
        "title": {"type": "text"},
        "author": {"type": "text"},
        "date": {"type": "date"},
        "vector": {
            "type": "dense_vector",
            "dims": 768,
            "index": True,
            "similarity": "dot_product"
        }
    }
}

client.indices.create(index = INDEX_NAME_VECTOR, mappings = vector_mapping)

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

這次創(chuàng)建 “vector_index” 時(shí),我們添加了一個(gè) “dense_vector” 類型的附加字段,并指定向量搜索的參數(shù):“dims” 參數(shù)表示所用模型作為輸出生成的矢量的維數(shù)。 “Similarity” 決定了衡量向量相似度的方法。 你可以在這里探索不同的 “similarity” 值。

for each in data:
    each['vector'] = model.encode(each['title'])
    client.index(index='vector_index', document=each)
client.indices.refresh()

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

讓我們使用 Sentence-Transformers 庫加載模型,并從數(shù)據(jù)集的 “title” 部分提取向量。 然后,我們將這些向量添加到每個(gè)數(shù)據(jù)條目中,并繼續(xù)將此數(shù)據(jù)添加到 “vector_index” 索引中。

為了在 Elasticsearch 中執(zhí)行向量搜索,我們首先需要一個(gè)查詢文本,然后是其相應(yīng)的向量表示。

重要提示:用于獲取查詢向量的模型應(yīng)與索引文檔時(shí)使用的模型相同; 否則,獲得準(zhǔn)確的結(jié)果將非常具有挑戰(zhàn)性。

我們可以運(yùn)行如下的代碼來查看已經(jīng)生成的 embeddings:

resp = client.search(index = INDEX_NAME_VECTOR, query={"match_all": {}})
for hit in resp['hits']['hits']:
    print(resp)

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

為了執(zhí)行向量搜索,Elasticsearch.search() 函數(shù)使用 “knn” 參數(shù)。 下圖顯示了 “knn” 查詢的示例。 “k” 值表示要檢索多少個(gè)結(jié)果,而 “num_candidates” 指定將有多少候選文檔放入池中進(jìn)行計(jì)算。 “query_vector” 是查詢文本的向量表示(在我們的例子中是 “HTML and CSS programming”)。 你可以在此處找到有關(guān) knn 查詢參數(shù)的詳細(xì)信息。

query_text = "HTML and CSS programming"
query_vector = model.encode(query_text)
query = {
    "field": "vector",
    "query_vector": query_vector,
    "k": 5,
    "num_candidates": 14
}

resp = client.search(index='vector_index', knn=query, source=False, fields=['title'])
for hit in resp['hits']['hits']:
    print(hit['_score'], hit['fields'])

上面顯示的結(jié)果為:

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

示例查詢返回的結(jié)果如上圖所示。 盡管返回的結(jié)果都不包含完全相同的單詞,但它們已經(jīng)成功捕獲了語義相似的結(jié)果。

那么,如果我們還想將這些語義搜索結(jié)果與過濾結(jié)合使用,我們應(yīng)該如何準(zhǔn)備 knn 查詢呢?

query = {
    "field": "vector",
    "query_vector": query_vector,
    "k": 5,
    "num_candidates": 14,
    "filter":[
        {"range": {"date": {"gte": "2023-07-01"}}},
        {"match": {"title": "Development"}}
    ]
}
resp = client.search(index='vector_index', knn=query, source=False, fields=['title'])
for hit in resp['hits']['hits']:
    print(hit['_score'], hit['fields'])

如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,人工智能,運(yùn)維,python

我們應(yīng)用的每個(gè)過濾器都作為 knn 參數(shù)中的 filter?提供。 你可以在此處添加任意數(shù)量的過濾器,并根據(jù)這些過濾器組合結(jié)果。 在上面的示例中,日期過濾器和關(guān)鍵字過濾器已添加在一起,旨在列出語義上接近且包含單詞 Development?但日期晚于 2023 年 7 月 1 日的文檔。

重要提示:Elasticsearch 在矢量搜索過程后執(zhí)行過濾,因此可能存在無法返回精確 k?個(gè)結(jié)果的情況。 在上圖中,即使 “k” 值設(shè)置為 5,查詢?nèi)苑祷?3 個(gè)文檔作為結(jié)果。 這是因?yàn)?,在?zhǔn)備的示例數(shù)據(jù)集中,只有 3 個(gè)文檔滿足指定的條件。

更多關(guān)于向量搜索的知識(shí),請(qǐng)參考文章 “Elastic:開發(fā)者上手指南” 中的 “NLP - 自然語言處理及矢量搜索” 章節(jié)。文章來源地址http://www.zghlxwxcb.cn/news/detail-654845.html

到了這里,關(guān)于如何在 Elasticsearch 中將矢量搜索與過濾結(jié)合起來 - Python 8.x的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Elasticsearch實(shí)戰(zhàn)(十五)---查詢query,filter過濾,結(jié)合aggs 進(jìn)行局部/全局聚合統(tǒng)計(jì)

    Elasticsearch實(shí)戰(zhàn)(十五)---查詢query,filter過濾,結(jié)合aggs 進(jìn)行局部/全局聚合統(tǒng)計(jì)

    Elasticsearch實(shí)戰(zhàn)-查詢query,filter過濾,結(jié)合aggs 進(jìn)行局部/全局聚合統(tǒng)計(jì) 1.準(zhǔn)備數(shù)據(jù) 2. ES 查詢query,filter過濾,結(jié)合aggs 聚合統(tǒng)計(jì) 2.1 查詢命中后,基于查詢的數(shù)據(jù)進(jìn)行聚合 前面我們講的所有的聚合操作 都是沒有查詢的,都是上來直接 aggs 進(jìn)行 聚合 avg, count, 如果現(xiàn)在我想統(tǒng)計(jì)

    2024年02月10日
    瀏覽(18)
  • 從物聯(lián)網(wǎng)到AI智能,詳解如何將物聯(lián)網(wǎng)和AI技術(shù)結(jié)合起來

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 物聯(lián)網(wǎng)(IoT)與人工智能(AI)相互促進(jìn)、協(xié)同,推動(dòng)著產(chǎn)業(yè)的前進(jìn)。物聯(lián)網(wǎng)的應(yīng)用已經(jīng)越來越廣泛,比如自動(dòng)化生產(chǎn)線,智能門禁系統(tǒng)等;而AI在物聯(lián)網(wǎng)領(lǐng)域也取得了很大的發(fā)展,機(jī)器學(xué)習(xí)、深度學(xué)習(xí)方法被用在物聯(lián)網(wǎng)數(shù)據(jù)分析、決策與預(yù)測(cè)上,實(shí)

    2024年02月07日
    瀏覽(18)
  • Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索

    Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索

    就搜索算法而言,沒有萬能的解決方案。 不同的算法在不同的場(chǎng)景下效果更好,有時(shí)需要算法的組合才能達(dá)到最好的效果。 在 Elasticsearch 中,一種流行的組合搜索算法的方法是使用混合搜索,將用于文本搜索的 BM25 算法與用于最近鄰搜索的 HNSW 算法相結(jié)合。 在這篇博文中,

    2024年02月06日
    瀏覽(21)
  • fastapi結(jié)合Manticore Search、elasticsearch、mysql實(shí)現(xiàn)全文搜索

    fastapi結(jié)合Manticore Search、elasticsearch、mysql實(shí)現(xiàn)全文搜索

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

    2024年02月12日
    瀏覽(19)
  • 開源分布式搜索引擎ElasticSearch結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程連接

    開源分布式搜索引擎ElasticSearch結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程連接

    簡(jiǎn)單幾步,結(jié)合Cpolar 內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)Java 遠(yuǎn)程連接操作本地分布式搜索和數(shù)據(jù)分析引擎Elasticsearch。 Cpolar內(nèi)網(wǎng)穿透提供了更高的安全性和隱私保護(hù),通過使用加密通信通道,Cpolar技術(shù)可以確保數(shù)據(jù)傳輸?shù)陌踩?,這為用戶和團(tuán)隊(duì)提供了更可靠的保護(hù),使他們能夠放心地處理和

    2024年02月04日
    瀏覽(17)
  • ES es Elasticsearch 十三 Java api 實(shí)現(xiàn)搜索 分頁查詢 復(fù)雜查詢 過濾查詢 ids查詢 等

    目錄 Java api 實(shí)現(xiàn)搜索 Pom.xml 建立鏈接 搜索全部記錄 增加規(guī)則值查某些字段 搜索分頁 全代碼 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 復(fù)雜查詢 bool查詢 filter? bool 復(fù)雜查詢?cè)黾舆^濾器查詢 復(fù)雜擦好像加排序 日志 思路 參考 api 寫法 寫Java代碼 請(qǐng)求條件構(gòu)建層次

    2024年02月04日
    瀏覽(25)
  • 分布式搜索和分析引擎Elasticsearch本地部署結(jié)合內(nèi)網(wǎng)穿透實(shí)現(xiàn)遠(yuǎn)程訪問

    分布式搜索和分析引擎Elasticsearch本地部署結(jié)合內(nèi)網(wǎng)穿透實(shí)現(xiàn)遠(yuǎn)程訪問

    本文主要介紹如何在Windows系統(tǒng)部署分布式搜索和分析引擎Elasticsearch,并結(jié)合Cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程連接和訪問本地服務(wù)。 Elasticsearch是一個(gè)基于Lucene庫的分布式搜索和分析引擎,它提供了一個(gè)分布式、多租戶的全文搜索引擎,具有HTTP Web接口和無模式JSON文檔,同時(shí)也

    2024年01月21日
    瀏覽(21)
  • 項(xiàng)目1在線交流平臺(tái)-6.Elasticsearch分布式搜索引擎-3.ES結(jié)合Kafka應(yīng)用-開發(fā)社區(qū)搜索功能

    項(xiàng)目1在線交流平臺(tái)-6.Elasticsearch分布式搜索引擎-3.ES結(jié)合Kafka應(yīng)用-開發(fā)社區(qū)搜索功能

    參考??途W(wǎng)高級(jí)項(xiàng)目教程 狂神說Elasticsearch教程筆記 尚硅谷Elasticsearch教程筆記 1.在業(yè)務(wù)層處理好搜索帖子的服務(wù) 包括保存帖子到ES服務(wù)器 從服務(wù)器中刪除帖子 從服務(wù)器中查詢帖子 2.發(fā)布事件 在controller層,結(jié)合kafka,發(fā)布帖子、增加評(píng)論時(shí),數(shù)據(jù)放入消息隊(duì)列 異步消費(fèi)消息

    2024年02月02日
    瀏覽(23)
  • 在 Excel 中將列數(shù)據(jù)用單引號(hào)括起來并添加分隔符的解決方案

    ????????在 Excel 中,有時(shí)候我們需要將某一列的所有值連接在一起,并且每個(gè)值用單引號(hào)括起來,同時(shí)在每個(gè)值之間添加逗號(hào)和空格。這樣的需求在數(shù)據(jù)處理和導(dǎo)出時(shí)比較常見。本文將介紹一種使用 Excel 函數(shù)解決這個(gè)問題的方法。 解決方案: 方法一:使用 CONCATENATE 和

    2024年01月20日
    瀏覽(27)
  • Elasticsearch:如何使用集群級(jí)別的分片分配過濾(不包括節(jié)點(diǎn))安全地停用節(jié)點(diǎn)

    Elasticsearch:如何使用集群級(jí)別的分片分配過濾(不包括節(jié)點(diǎn))安全地停用節(jié)點(diǎn)

    當(dāng)你想停用 Elasticsearch 中的節(jié)點(diǎn)時(shí),通常的過程不是直接銷毀節(jié)點(diǎn)。 如果你這樣做,那么你就有數(shù)據(jù)丟失的風(fēng)險(xiǎn),這不是你想要對(duì)應(yīng)該是可靠的數(shù)據(jù)庫做的事情。 這樣做的問題是,節(jié)點(diǎn)很可能會(huì)通過 Elasticsearch 處理的恰當(dāng)命名的分片分配分配給它們的分片。 Elasticsearch 中的

    2024年02月07日
    瀏覽(42)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包