国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

教你們怎么在Django中使用ElasticSearch

馬哥Linux運維 ? 來源:CSDN技術社區 ? 作者:py臭屁蟲 ? 2021-06-11 16:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是Elasticsearch?

Elasticsearch是基于Lucene庫的搜索引擎。它提供了具有HTTP Web界面和無模式JSON文檔的分布式,多租戶功能的全文本搜索引擎。Elasticsearch是用Java開發的。

Elasticsearch的用途是什么?

Elasticsearch可以使我們快速,近乎實時地存儲,搜索和分析大量數據,并在幾毫秒內給出答復。之所以能夠獲得快速的搜索響應,是因為它可以直接搜索索引,而不是直接搜索文本。

Elasticsearch-一些基本概念

索引—不同類型的文檔和文檔屬性的集合。例如,文檔集可以包含社交網絡應用程序的數據。

類型/映射-共享共享同一索引中存在的一組公共字段的文檔集合。例如,索引包含社交網絡應用程序的數據;對于用戶個人資料數據,可以有一種特定的類型,對于消息傳遞數據,可以有另一種類型,對于注釋數據,可以有另一種類型。

文檔-以特定方式以JSON格式定義的字段的集合。每個文檔都屬于一種類型,并且位于索引內。每個文檔都與唯一的標識符(稱為UID)相關聯。

字段-Elasticsearch字段可以包含多個相同類型的值(本質上是一個列表)。另一方面,在SQL中,一列可以恰好包含所述類型的一個值。

在Django中使用Elasticsearch

安裝和配置,安裝Django Elasticsearch DSL:

$ pip install django-elasticsearch-dsl

然后將django_elasticsearch_dsl添加到INSTALLED_APPS

必須在django設置中定義ELASTICSEARCH_DSL。

例如:

ELASTICSEARCH_DSL={

‘default’: {

‘hosts’: ‘localhost:9200’

},

}

聲明要索引的數據,然后創建model:

# models.pyclass Category(models.Model):

name = models.CharField(max_length=30)

desc = models.CharField(max_length=100, blank=True)

def __str__(self):

return ‘%s’ % (self.name)

要使該模型與Elasticsearch一起使用,請創建django_elasticsearch_dsl.Document的子類,在Document類中創建一個Index類以定義我們的Elasticsearch索引,名稱,設置等,最后使用Registry.register_document裝飾器注冊該類。它需要在應用目錄中的documents.py中定義Document類。

# documents.pyfrom django_elasticsearch_dsl import Document

from django_elasticsearch_dsl.registries import registry

from .models import Category

@registry.register_documentclass CategoryDocument(Document):

class Index:

name = ‘category’

settings = {

‘number_of_shards’: 1,

‘number_of_replicas’: 0

}

class Django:

model = Category

fields = [

‘name’,

‘desc’,

填充:

要創建和填充Elasticsearch索引和映射,請使用search_index命令:

$python manage.py search_index — rebuild

要獲得更多幫助,請使用命令:

$ python manage.py search_index —help

現在,當執行以下操作時:

category = Category(

name=“Computer and Accessories”,

desc=“abc desc”

category.save()

該對象也將保存在Elasticsearch中(使用信號處理程序)。

搜索:

要獲取elasticsearch-dsl-py搜索實例,請使用:

s = CategoryDocument.search().filter(“term”, name=“computer”)

# or

s = CategoryDocument.search().query(“match”, description=“abc”)

for hit in s:

print(

“Category name : {}, description {}”.format(hit.name, hit.desc)

要將彈性搜索結果轉換為真實的Django查詢集,請注意,這會花費一個SQL請求來檢索具有由Elasticsearch查詢返回的ID的模型實例。

s = CategoryDocument.search().filter(“term”, name=“computer”)[:30]

qs = s.to_queryset()

# qs is just a django queryset and it is called with order_by to keep# the same order as the elasticsearch result.for cat in qs:

print(cat.name)

完畢,如果有任何疑問,歡迎留言交流。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1304

    瀏覽量

    74451
  • HTTP
    +關注

    關注

    0

    文章

    537

    瀏覽量

    35345
  • Lucene
    +關注

    關注

    0

    文章

    6

    瀏覽量

    7860
  • Elasticsearch
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3146

原文標題:如何在Django中使用ElasticSearch

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    從0到1搭建實時日志監控系統:基于WebSocket + Elasticsearch的實戰方案

    1. 背景與痛點 開發分布式系統時,日志分散多個服務節點中,傳統輪詢查詢方式存在延遲高、資源浪費的問題。某次線上故障中,因未能實時發現錯誤日志,導致問題排查時間延長2小時。因此,決定自研一套
    發表于 01-09 16:43

    實戰RK3568性能調優:如何利用迅為資料壓榨NPU潛能-Android系統中使用NPU

    《實戰RK3568性能調優:如何利用迅為資料壓榨NPU潛能-Android系統中使用NPU》
    的頭像 發表于 11-07 13:42 ?642次閱讀
    實戰RK3568性能調優:如何利用迅為資料壓榨NPU潛能-<b class='flag-5'>在</b>Android系統<b class='flag-5'>中使</b>用NPU

    如何二進制安裝Linux集群

    ElasticSearch是使用Java語言開發的,所以運行時依賴JDK。
    的頭像 發表于 06-17 14:49 ?669次閱讀

    射頻前端模塊中使用的集成無源元件技術

    本文介紹了射頻前端模塊(RF-FEM)中使用的集成無源元件(IPD)技術。
    的頭像 發表于 06-03 18:26 ?1564次閱讀
    射頻前端模塊<b class='flag-5'>中使</b>用的集成無源元件技術

    手把手教你如何調優Linux網絡參數

    高并發網絡服務場景中,Linux內核的默認網絡參數往往無法滿足需求,導致性能瓶頸、連接超時甚至服務崩潰。本文基于真實案例分析,從參數解讀、問題診斷到優化實踐,手把手教你如何調優Linux網絡參數,支撐百萬級并發連接。
    的頭像 發表于 05-29 09:21 ?962次閱讀

    FX3為什么無法Windows中使用Gstreamer?

    我正在開發 FX3,我可以 Linux 和 Windows 中使用 y8 格式的 ffmpeg 流式傳輸相機, Linux 中使用 y8 格式的 Gstreamer,但我無法
    發表于 05-29 06:59

    單節點Elasticsearch+Filebeat+Kibana安裝指南

    單節點Elasticsearch+Filebeat+Kibana安裝指南
    的頭像 發表于 05-21 11:06 ?1187次閱讀
    單節點<b class='flag-5'>Elasticsearch</b>+Filebeat+Kibana安裝指南

    labview 中使用了旋鈕,旋鈕的值改變事件中怎么能夠做到只終值時觸發?

    labview 中使用了旋鈕,旋鈕的值改變事件中怎么能夠做到只終值時觸發? (如果使用鼠標釋放代替,會出現鼠標移除后再釋放是無法觸發)
    發表于 05-10 21:28

    【迅為電子】一步步教你完成iTOP-RK3568 EDP屏幕適配

    【迅為電子】一步步教你完成iTOP-RK3568 EDP屏幕適配
    的頭像 發表于 04-23 15:08 ?2015次閱讀
    【迅為電子】一步步<b class='flag-5'>教你</b>完成iTOP-RK3568 EDP屏幕適配

    工業自動化中使用固態繼電器時應避免的5個錯誤

    固態繼電器(SSR)已成為工業自動化的無名英雄。它們安靜、可靠、速度快——這是繼電器應具備的所有特點。但就像高科技駕駛艙中的新手飛行員一樣,即使是經驗豐富的工程師使用SSR時也會犯常見錯誤。本文讓我們來看看應如何避免工業自動化中使
    的頭像 發表于 04-20 11:42 ?702次閱讀

    如何實現MC33774ICSimulink環境中使用基于模型的設計?

    我想熟悉如何實現MC33774IC Simulink 環境中使用基于模型的設計。 盡管 MATLAB 提供了一些示例文件,但它們似乎是最終版本。要更深入地了解如何配置MC33774,我正在尋找一個教程,該教程解釋了如何從頭開始
    發表于 04-10 08:05

    為什么S32G中使用32個GPIO進行啟動配置?

    我很好奇為什么 S32G 中使用 32 個 GPIO 進行啟動配置。 是否必須使用所有 32 個 GPIO 進行引導模式配置? 要使用分配給引導配置的 GPIO,是否需要額外的開關?
    發表于 04-10 06:48

    為什么“PWM Adc Dma 344 S32CT”示例中使用ISR塊來讀取dma adc通道?

    我正在 MBDT 中使用 S32K358 進行一個項目,我正在尋找啟用 DMA 傳輸類型的 ADC 模塊。 ADC 示例“PWM Adc Dma 344 S32CT”中,我發現要讀取配置為
    發表于 04-08 06:39

    S32KAUTOSAR中使用CAT1 ISR,是否需要執行上下文切換?

    如果我們 AUTOSAR 中使用 CAT1 ISR,是否需要執行上下文切換?另外,是否需要返回指令才能跳回到作系統?您有沒有帶有 CAT1 ISR 的 S32K3x4 微控制器的示例?
    發表于 03-27 07:34

    請問是否可以模型服務器中使用REST請求OpenVINO?預測?

    是否可以模型服務器中使用 REST 請求OpenVINO?預測?
    發表于 03-05 08:06