一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

教你們?cè)趺丛贒jango中使用ElasticSearch

馬哥Linux運(yùn)維 ? 來源:CSDN技術(shù)社區(qū) ? 作者:py臭屁蟲 ? 2021-06-11 16:01 ? 次閱讀

什么是Elasticsearch?

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

Elasticsearch的用途是什么?

Elasticsearch可以使我們快速,近乎實(shí)時(shí)地存儲(chǔ),搜索和分析大量數(shù)據(jù),并在幾毫秒內(nèi)給出答復(fù)。之所以能夠獲得快速的搜索響應(yīng),是因?yàn)樗梢灾苯铀阉魉饕?,而不是直接搜索文本?/p>

Elasticsearch-一些基本概念

索引—不同類型的文檔和文檔屬性的集合。例如,文檔集可以包含社交網(wǎng)絡(luò)應(yīng)用程序的數(shù)據(jù)。

類型/映射-共享共享同一索引中存在的一組公共字段的文檔集合。例如,索引包含社交網(wǎng)絡(luò)應(yīng)用程序的數(shù)據(jù);對(duì)于用戶個(gè)人資料數(shù)據(jù),可以有一種特定的類型,對(duì)于消息傳遞數(shù)據(jù),可以有另一種類型,對(duì)于注釋數(shù)據(jù),可以有另一種類型。

文檔-以特定方式以JSON格式定義的字段的集合。每個(gè)文檔都屬于一種類型,并且位于索引內(nèi)。每個(gè)文檔都與唯一的標(biāo)識(shí)符(稱為UID)相關(guān)聯(lián)。

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

在Django中使用Elasticsearch

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

$ pip install django-elasticsearch-dsl

然后將django_elasticsearch_dsl添加到INSTALLED_APPS

必須在django設(shè)置中定義ELASTICSEARCH_DSL。

例如:

ELASTICSEARCH_DSL={

‘default’: {

‘hosts’: ‘localhost:9200’

},

}

聲明要索引的數(shù)據(jù),然后創(chuàng)建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一起使用,請(qǐng)創(chuàng)建django_elasticsearch_dsl.Document的子類,在Document類中創(chuàng)建一個(gè)Index類以定義我們的Elasticsearch索引,名稱,設(shè)置等,最后使用Registry.register_document裝飾器注冊(cè)該類。它需要在應(yīng)用目錄中的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’,

填充:

要?jiǎng)?chuàng)建和填充Elasticsearch索引和映射,請(qǐng)使用search_index命令:

$python manage.py search_index — rebuild

要獲得更多幫助,請(qǐng)使用命令:

$ python manage.py search_index —help

現(xiàn)在,當(dāng)執(zhí)行以下操作時(shí):

category = Category(

name=“Computer and Accessories”,

desc=“abc desc”

category.save()

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

搜索:

要獲取elasticsearch-dsl-py搜索實(shí)例,請(qǐng)使用:

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)

要將彈性搜索結(jié)果轉(zhuǎn)換為真實(shí)的Django查詢集,請(qǐng)注意,這會(huì)花費(fèi)一個(gè)SQL請(qǐng)求來檢索具有由Elasticsearch查詢返回的ID的模型實(shí)例。

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

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

    關(guān)注

    2

    文章

    1276

    瀏覽量

    70593
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    516

    瀏覽量

    32290
  • Lucene
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    7728
  • Elasticsearch
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    2956

原文標(biāo)題:如何在Django中使用ElasticSearch

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Django89的web框架代碼

    基于Django89的web框架代碼,超詳細(xì)
    發(fā)表于 02-10 15:38 ?0次下載

    如何在Linux環(huán)境下高效安裝部署和配置Elasticsearch

    /CentOS-7-x86_64-DVD-2009.iso elasticsearch-7.10.0-linux-x86_64.tar.gz https://www.elastic.co/cn/downloads/past-releases
    的頭像 發(fā)表于 01-16 11:49 ?776次閱讀

    在華為云上通過 Docker 容器部署 Elasticsearch 并進(jìn)行性能評(píng)測

    ? 2.2 安裝 Docker ? 2.3 啟動(dòng) Docker ? 3. 使用Docker部署Elasticsearch ? 3.1 拉取Elasticsearch鏡像 ? 3.2 啟動(dòng)
    的頭像 發(fā)表于 01-13 13:36 ?321次閱讀
    在華為云上通過 Docker 容器部署 <b class='flag-5'>Elasticsearch</b> 并進(jìn)行性能評(píng)測

    構(gòu)建高效搜索解決方案,Elasticsearch &amp; Kibana 的完美結(jié)合

    的流暢運(yùn)行。部署 Elasticsearch,享受分布式搜索的精準(zhǔn)與快速;結(jié)合 Kibana,實(shí)現(xiàn)數(shù)據(jù)可視化,決策更直觀。 828 華為云企業(yè)上云節(jié)不僅降低成本,更提升效率。云端部署,資源按需分配,靈活應(yīng)對(duì)業(yè)務(wù)增長。立即體驗(yàn),開啟高效搜索新篇章,讓數(shù)據(jù)驅(qū)動(dòng)您的企業(yè)未來!
    的頭像 發(fā)表于 12-27 13:48 ?290次閱讀
    構(gòu)建高效搜索解決方案,<b class='flag-5'>Elasticsearch</b> &amp; Kibana 的完美結(jié)合

    技術(shù)升級(jí):探索華為云 EulerOS 與 Flexus X 實(shí)例如何完美融合快速部署 Django

    ,我們將目光聚焦于華為云 EulerOS 操作系統(tǒng)與 Flexus X 實(shí)例的深度融合,探討如何在這一強(qiáng)大組合下實(shí)現(xiàn) Django 服務(wù)的快速部署。本文將帶你領(lǐng)略華為云的技術(shù)魅力,解鎖高效部署新姿勢(shì),助力你的業(yè)務(wù)飛速發(fā)展。 什么是 Django?
    的頭像 發(fā)表于 12-25 17:50 ?397次閱讀
    技術(shù)升級(jí):探索華為云 EulerOS 與 Flexus X 實(shí)例如何完美融合快速部署 <b class='flag-5'>Django</b>

    【北京迅為】itop-3562開發(fā)板Linux系統(tǒng)中使用NPU

    【北京迅為】itop-3562開發(fā)板Linux系統(tǒng)中使用NPU
    的頭像 發(fā)表于 11-25 14:52 ?762次閱讀
    【北京迅為】itop-3562開發(fā)板<b class='flag-5'>在</b>Linux系統(tǒng)<b class='flag-5'>中使</b>用NPU

    Elasticsearch 再次開源

    Elasticsearch 和 Kibana 又可以被稱為開源了。很難表達(dá)這句話讓我有多高興。我激動(dòng)得簡直要跳起來了。我們 Elastic 的所有人都是如此。開源是我的 DNA。這也是Elastic的DNA。能夠再次將 Elasticsearch 稱為開源,我感到非常高興
    的頭像 發(fā)表于 11-13 12:14 ?346次閱讀
    <b class='flag-5'>Elasticsearch</b> 再次開源

    多路復(fù)用模擬輸入應(yīng)用中使用ADS8411

    電子發(fā)燒友網(wǎng)站提供《多路復(fù)用模擬輸入應(yīng)用中使用ADS8411.pdf》資料免費(fèi)下載
    發(fā)表于 10-22 09:32 ?0次下載
    <b class='flag-5'>在</b>多路復(fù)用模擬輸入應(yīng)用<b class='flag-5'>中使</b>用ADS8411

    反向電流應(yīng)用中使用比較器

    電子發(fā)燒友網(wǎng)站提供《反向電流應(yīng)用中使用比較器.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 12:50 ?0次下載
    <b class='flag-5'>在</b>反向電流應(yīng)用<b class='flag-5'>中使</b>用比較器

    反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62120應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62120應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 10:27 ?0次下載
    <b class='flag-5'>在</b>反相降壓/升壓拓?fù)?b class='flag-5'>中使</b>用 TPS62120應(yīng)用說明

    反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62125應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62125應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 10:25 ?0次下載
    <b class='flag-5'>在</b>反相降壓/升壓拓?fù)?b class='flag-5'>中使</b>用 TPS62125應(yīng)用說明

    設(shè)計(jì)中使用MOSFET安全工作區(qū)曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計(jì)中使用MOSFET安全工作區(qū)曲線.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 10:55 ?2次下載
    <b class='flag-5'>在</b>設(shè)計(jì)<b class='flag-5'>中使</b>用MOSFET安全工作區(qū)曲線

    高壓應(yīng)用中使用電壓監(jiān)控器

    電子發(fā)燒友網(wǎng)站提供《高壓應(yīng)用中使用電壓監(jiān)控器.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 10:13 ?0次下載
    <b class='flag-5'>在</b>高壓應(yīng)用<b class='flag-5'>中使</b>用電壓監(jiān)控器

    設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:21 ?19次下載
    <b class='flag-5'>在</b>設(shè)計(jì)<b class='flag-5'>中使</b>用MOSFET瞬態(tài)熱阻抗曲線

    vscode中ESP-IDF中使用以太網(wǎng)時(shí)出現(xiàn)報(bào)錯(cuò)的原因?

    各位大佬你們好,我vscode中ESP-IDF中使用以太網(wǎng)時(shí),出現(xiàn)了下圖的錯(cuò)誤,想知道如何解決,這是軟件上可以解決的問題,還是因?yàn)橛布霈F(xiàn)問題導(dǎo)致的。
    發(fā)表于 06-06 07:24