Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 4068|Odgovoriti: 2

[Vir] [Praktični boj] Uporabi Lucene.Net + Jieba.NET za izdelavo lahkega iskanja na lokaciji

[Kopiraj povezavo]
Objavljeno 29. 10. 2023 ob 18:05:43 | | | |
Zahteve: Iskanje po celotnem besedilu na strani je pogosto uporabljena funkcija in se pogosto uporablja prav na podlagi tegaElasticSearchSolrUvedba in razvoj, zdaj pa sta bila izdana še dva novaRedisSearchMeiliSearchPrvi dve sta težji, čeprav zadnji dve nista tako zahtevni kot prvi dve, vendar vseeno zahtevata uporabo odvisnih storitev, ta članek uporablja Lucene.Net + Jieba.NET za izdelavo lahkotnega iskanja na spletni strani.

Lucene.Net

Lucene.Net je .NET prenos Lucene in je odprtokodni razvojni komplet za polno besedilo iskalnika, torej ni polnobesedilni iskalnik, temveč arhitektura iskalnika s polnim besedilom, ki zagotavlja popoln poizvedbeni in indeksni mehanizem.

Stran:Prijava do hiperpovezave je vidna.
GitHub naslov:Prijava do hiperpovezave je vidna.

Jieba.NET

Jieba.NET je deležnik kitajske jieba. .NET različica (C# implementacija). Lahko izvaja funkcije, kot so segmentacija besed, označevanje delov govora, izvlečenje ključnih besed itd. za kitajsko besedilo ter podpira prilagojene slovarje.

GitHub naslov:Prijava do hiperpovezave je vidna.

Najprej si poglejmo upodobitve:




Prilagodite analizator

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream v Lucene TokenStream: Tok, pridobljen po obdelavi tokenizerja. Ta tok hrani različne informacije o segmentaciji besed, ki jih je mogoče učinkovito pridobiti preko TokenStreama. Naslednji je postopek pretvorbe datotečnega toka v TokenStream. Najprej uporabite Tokenizer za segmentacijo besed, različni tokenizerji imajo različne tokenzierje, po ločevanju tokenzierja filtrirajte podatke, razdeljene na besede, preko TokenFilterja, kot so stop besede. Po filtriranju združite vse podatke v TokenStream.

Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.


Za prilagoditev analizatorja Lucene na podlagi Jieba.NET je prva referenca naslednja:



Neposredno se obrnite na paket Lucene.Net.Analysis.Common, saj se Lucene.Net.Analysis.Common zanaša na Lucene.Net paket za samodejni prenos.

Ustvarite nov JiebaTokenizer.cs z naslednjo kodo:

Ustvarite nov JiebaAnalyzer.cs z naslednjo kodo:



Lucene.Net Ustvarjanje novih dokumentov in iskanj

Če podatke s spletne strani redno ali sproženo dodate v Lucen, dokument shrani na fizični disk preko analizatorja in nato pokliče iskalni vmesnik, da ga najde.

Koda razreda pomoči LuceneHelper je naslednja:



Shranjevanje v trgovini

Store.YES: Ne bo le indeksiral podatke, ampak jih tudi shranil, tako da bodo rezultati iskanja lahko vrnili informacije o polju.
Store.NO: Indeksirani bodo le podatki, podatki ne bodo shranjeni, rezultati iskanja pa ne morejo pridobiti informacij o tem polju.Prihrani prostor na disku

Kot je prikazano spodaj:




Vrsta polja

Vrste polj v Lucene.Net so Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Prosimo, uporabite ustrezen podatkovni tip glede na vašo situacijo.

TextField proti StringField

TextField bo zagotovo leksikaliziran, StringField ne bo izvajal leksikalne analize vsebine, shranjene v dokumentarcu, glej:Prijava do hiperpovezave je vidna.

Izvedba sestavljenega iskanja


Obstaja 6 kombinacij naslednjega:

1. MORA in MORA: Pridobite presečišče zaporednih poizvedbenih klavzul.
2. MUST in MUST_NOT: Označuje, da iskalnih rezultatov poizvedbene klavzule, ki ustreza MUST_NOT, ni mogoče vključiti v rezultate poizvedbe.
3. NAJ in MUST_NOT: Ko se funkcija uporablja neprekinjeno, je enaka kot MORA in MUST_NOT.
4. Ko se SHOULD in MUST uporabljata skupaj, je rezultat iskalni rezultat klavzule MUST, vendar lahko SHOULD vpliva na razvrščanje.
5. NAJ in MORA: Označuje razmerje med "ali", končni rezultat iskanja pa je združitev vseh iskalnih klavzul.
6.MUST_NOT in MUST_NOT: brez pomena, pridobivanje brez rezultatov.


Vodite projekt

Na tej točki lahko začnete projekt za dodajanje, posodabljanje in iskanje vmesniške kode na naslednji način:


Napake se lahko prijavijo na naslednji način:

Med obdelavo zahteve je prišlo do neobdelane izjeme.
DirectoryNotFoundException: Could not find a part of the path 'C:\Users\itsvse_nuc11\source\repos\DiscuzSearch\DiscuzSearch\bin\Debug\net6.0\Resources\prob_trans.json'.
Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(niz fullPath, FileMode mode, dostop do datotek, FileShare share, možnosti FileOptions)

TypeInitializationException: The type initializer for 'JiebaNet.Segmenter.JiebaSegmenter' threw an exception.

jieba.net Po namestitvi lahko v mapi paketi\jieba.NET vidite mapo Resources, ki vsebuje slovar in druge podatkovne datoteke, potrebne za zagon jieba.NET, najlažja metoda konfiguracije pa je, da celotno mapo Resources kopirate v mapo, kjer se nahaja sestav, tako da se vgrajene privzete nastavitve uporabljajo jieba.NET.

C:\Users\%USERPROFILE%\.nuget\packages\jieba.net\0.42.2\Resources

JiebaNet mora dodati konfiguracijsko mapo, koda je naslednja:

Test je ustvaril 500 novih dokumentov (povezanih z mojo dejansko situacijo, samo za referenco), disk pa zavzema 119KB, kot je prikazano na spodnji sliki:



(Konec)




Prejšnji:Sledite uradnemu računu in brezplačno pridobite "vabilno kodo"
Naslednji:.NET pretvori varbinarni niz baze podatkov v polje bajtov[]
 Najemodajalec| Objavljeno 29. 10. 2023 ob 18:10:40 |
Elasticsearch (ES) ne uspe zapisati podatkov v rešitev napake
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch samodejno očisti indekse, da sprosti prostor na disku
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x uporablja xpack za varnostno avtentikacijo
https://www.itsvse.com/thread-10206-1-1.html

Namestitev storitve Elasticsearch z Dockerjem
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch uporablja elasticdump za varnostno kopiranje in migracijo podatkov
https://www.itsvse.com/thread-10143-1-1.html

Namestite samostojno različico tutoriala elasticsearch 7.10.2 na Windows
https://www.itsvse.com/thread-9962-1-1.html

Uvod v konfiguracijo iskalnih poudarkov Elasticsearch
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Uporabite razhroščevanje v Elasticsearch za ogled informacij o zahtevah in odgovorih
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Sled jedrne povezave (5) Podatki Jaegerja ostanejo v elasticsearch
https://www.itsvse.com/thread-9553-1-1.html

Elasticsearch (ES) replicira indeks klonov
https://www.itsvse.com/thread-9545-1-1.html

Zdravje skupine Elasticsearch(ES): rumeno (6 od 7)
https://www.itsvse.com/thread-9544-1-1.html

Zdravje grozda Elasticsearch(ES): rdeča Analiza okvar
https://www.itsvse.com/thread-9543-1-1.html

Java geolokacijske informacije v ElasticSearch (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[polje mora biti bodisi [lat], [lon] ali [geohash]]
https://www.itsvse.com/thread-6442-1-1.html

Elasticsearch-mappingfield tip
https://www.itsvse.com/thread-6436-1-1.html

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法
https://www.itsvse.com/thread-6420-1-1.html

【Praktična akcija】Kibana inštalacijski vodič za Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

Geogeografske koordinate napredne družine značilnosti Elasticsearch
https://www.itsvse.com/thread-6399-1-1.html

ElasticSearch sestavljene poizvedbe morajo, morajo must_not uporabljati
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch izbriše in indeksira vse podatke dokumentov
https://www.itsvse.com/thread-6321-1-1.html

[Dejanski boj]. net/c# Klic elasticsearch search preko NEST [z izvorno kodo]
https://www.itsvse.com/thread-6294-1-1.html

Vzroki in rešitve za unassigned_shards enovozliščnega Elasticsearcha
https://www.itsvse.com/thread-6193-1-1.html

Vodič za namestitev elasticsearch-analysis-ik v elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

Namestite elasticsearch-6.5.2 elasticsearch-head vtičnik
https://www.itsvse.com/thread-6190-1-1.html

Centos 7 namestitev in uvajanje elasticsearch-6.5.2 vodič
https://www.itsvse.com/thread-6173-1-1.html

Izbira iskalnika: Elasticsearch proti Solr
https://www.itsvse.com/thread-6168-1-1.html
 Najemodajalec| Objavljeno 2023-11-5 21:27:45 |
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com