Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk menulis fungsi carian sistem CMS dalam Python

Bagaimana untuk menulis fungsi carian sistem CMS dalam Python

王林
Lepaskan: 2023-08-06 10:40:02
asal
782 orang telah melayarinya

Cara menulis fungsi carian sistem CMS dalam Python

Dalam sistem pengurusan kandungan moden (CMS), fungsi carian ialah fungsi utama dan biasa. Melalui fungsi carian, pengguna boleh mencari dengan cepat dan tepat apa yang mereka perlukan. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis fungsi carian sistem CMS dan memberikan contoh kod yang berkaitan.

  1. Pasang perpustakaan yang diperlukan

Sebelum kita mula menulis fungsi carian, kita perlu memasang beberapa perpustakaan Python yang akan membantu kita melaksanakan fungsi carian. Yang paling penting ialah Elasticsearch dan PyPi.

Pasang perpustakaan menggunakan arahan berikut:

pip install elasticsearch
pip install pytz
Salin selepas log masuk
  1. Sambung ke Elasticsearch

Elasticsearch ialah enjin carian dan analisis teragih sumber terbuka yang sesuai untuk fungsi carian sistem CMS. Pertama, kita perlu mewujudkan sambungan ke Elasticsearch.

from elasticsearch import Elasticsearch

# 连接到本地的Elasticsearch实例
es = Elasticsearch("http://localhost:9200")
Salin selepas log masuk
  1. Buat Indeks

Sebelum mencari, kita perlu menyimpan kandungan yang ingin kita cari dalam indeks Elasticsearch. Dalam contoh ini, kami akan menggunakan indeks yang dipanggil "artikel" yang akan menyimpan tajuk dan kandungan artikel.

def create_index(index_name):
    index_settings = {
        "settings": {
            "number_of_shards": 1,
            "number_of_replicas": 0
        },
        "mappings": {
            "properties": {
                "title": {"type": "text"},
                "content": {"type": "text"}
            }
        }
    }

    es.indices.create(index=index_name, body=index_settings)
Salin selepas log masuk
  1. Tambah Dokumen

Seterusnya, kita boleh menambah kandungan artikel sebenar pada indeks.

def add_document(index_name, title, content):
    doc = {
        "title": title,
        "content": content
    }

    es.index(index=index_name, body=doc)
Salin selepas log masuk
  1. Melakukan carian

Kini kita boleh menulis fungsi yang menjalankan operasi carian dan mengembalikan hasil yang sepadan.

def search(index_name, query):
    search_body = {
        "query": {
            "multi_match": {
                "query": query,
                "fields": ["title", "content"]
            }
        }
    }

    result = es.search(index=index_name, body=search_body)

    return result
Salin selepas log masuk
  1. Contoh lengkap

Kini, kita boleh menulis contoh lengkap untuk menunjukkan cara menggunakan fungsi di atas untuk melaksanakan fungsi carian sistem CMS.

# 连接到Elasticsearch
es = Elasticsearch("http://localhost:9200")

# 创建索引
create_index("articles")

# 添加文档
add_document("articles", "如何使用Python编写CMS系统的搜索功能", "本文介绍了如何使用Python编写CMS系统的搜索功能,并提供了相关的代码示例。")
add_document("articles", "Python编程入门", "Python是一个易于学习和强大的编程语言。本文将介绍Python的基础知识。")

# 执行搜索
result = search("articles", "Python")

# 输出搜索结果
for hit in result["hits"]["hits"]:
    print(hit["_source"]["title"])
Salin selepas log masuk

Di atas adalah langkah asas dan kod contoh untuk menggunakan Python untuk menulis fungsi carian sistem CMS. Dengan menggunakan perpustakaan Elasticsearch, kami boleh melaksanakan fungsi carian yang berkuasa dan fleksibel dengan mudah serta meningkatkan pengalaman pengguna sistem CMS.

Atas ialah kandungan terperinci Bagaimana untuk menulis fungsi carian sistem CMS dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan