Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 4068|Svar: 2

[Kilde] [Praktisk kamp] Brug Lucene.Net + Jieba.NET til at bygge en letvægts søgning på stedet

[Kopier link]
Opslået den 29-10-2023 18:05:43 | | | |
Krav: Fuldtekstsøgning på siden er en almindeligt anvendt funktion, og den anvendes ofte baseret på denElasticSearchSolrUdrulning og udvikling, og nu er to nye blevet udgivetRedisSearchMeiliSearchSøgemaskine, de to første er tungere, selvom de to sidste ikke er så tunge som de to første, men stadig kræver implementering af afhængige tjenester; denne artikel bruger Lucene.Net + Jieba.NET til at bygge en letvægts onsite-søgning.

Lucene.Net

Lucene.Net er en .NET-port af Lucene og er et open source fuldtekst-søgemaskineudviklingssæt, dvs. det er ikke en fuldtekst-søgemaskine, men en fuldtekst-søgemaskinearkitektur, der leverer en komplet forespørgsels- og indekseringsmotor.

Websted:Hyperlink-login er synlig.
GitHub-adresse:Hyperlink-login er synlig.

Jieba.NET

Jieba.NET er et participium kinesisk jieba. .NET-version (C#-implementering). Den kan udføre funktioner som ordsegmentering, ordklasseannotation, nøgleordsudtrækning osv. for kinesisk tekst og understøtter brugerdefinerede ordbøger.

GitHub-adresse:Hyperlink-login er synlig.

Lad os først se på renderingerne:




Tilpas analysatoren

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream i Lucene TokenStream: En strøm, der opnås efter tokenizeren er blevet behandlet. Denne strøm gemmer forskellige oplysninger om ordsegmentering, som effektivt kan opnås via TokenStream. Følgende er processen med at konvertere filstrømmen til en TokenStream. Først bruger du Tokenizeren til at segmentere ordene, forskellige tokenizere har forskellige tokenizere, og efter tokenizeren er adskilt, filtreres de data, der er opdelt i ord, gennem TokenFilteret, såsom stopord. Efter filtrering samles alle data i en TokenStream.

Henvisning:

Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.


For at tilpasse Lucene-analysatoren baseret på Jieba.NET er den første reference som følger:



Se direkte til Lucene.Net.Analysis.Common-pakken, da Lucene.Net.Analysis.Common er afhængig af, at Lucene.Net-pakken downloades automatisk.

Opret en ny JiebaTokenizer.cs med følgende kode:

Opret en ny JiebaAnalyzer.cs med følgende kode:



Lucene.Net Opret nye dokumenter og søgninger

Tilføj data fra en hjemmeside til Lucene regelmæssigt eller med trigger, og Lucene gemmer dokumentet på en fysisk disk via analysatoren og kalder derefter søgegrænsefladen for at finde det.

LuceneHelper-hjælpeklassens kode er som følger:



Opbevaring i butikken

Store.YES: Det indekserer ikke kun dataene, men gemmer også dataene, så søgeresultaterne kan returnere feltinformation.
Store.NO: Kun dataene vil blive indekseret, og dataene vil ikke blive gemt, og søgeresultaterne kan ikke få fat i disse feltoplysninger.Sparer diskplads

Som vist nedenfor:




Felttype

Felttyperne i Lucene.Net er Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Brug venligst den relevante datatype i henhold til din situation.

TextField vs. StringField

TextField vil helt sikkert blive leksikaliseret, StringField vil ikke udføre leksikalsk analyse af det indhold, der er gemt i dokumentet, henvis:Hyperlink-login er synlig.

Forekommer sammensat søgning


Der er 6 kombinationer af følgende:

1. MUST og MUST: Få krydset mellem sammenhængende forespørgselsklausuler.
2. MUST og MUST_NOT: Angiver, at søgeresultaterne af forespørgselsklausulen, der svarer til MUST_NOT, ikke kan inkluderes i forespørgselsresultaterne.
3.SHOULD og MUST_NOT: Når funktionen bruges kontinuerligt, er den samme som MUST og MUST_NOT.
4. Når SHOULD og MUST bruges sammen, er resultatet søgeresultatet for MUST-klausulen, men SHOULD kan påvirke sorteringen.
5. BØR og BURDE: Angiver forholdet mellem "eller", og det endelige søgeresultat er foreningen af alle søgeklausuler.
6.MUST_NOT og MUST_NOT: meningsløs, genfinding uden resultater.


Kør projektet

På dette tidspunkt kan du starte projektet for at tilføje, opdatere og søge efter interfacekoden som følger:


Fejl kan rapporteres som følger:

En ubehandlet undtagelse opstod under behandlingen af anmodningen.
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(streng fullPath, FileMode mode, FileAccess adgang, FileShare share, FileOptions-muligheder)

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

jieba.net Efter installationen kan du se Resources-mappen i packages\jieba.NET-mappen, som indeholder ordbogen og andre datafiler, der kræves for at køre jieba.NET, og den nemmeste konfigurationsmetode er at kopiere hele Resources-mappen til den mappe, hvor assemblyen er placeret, så de indbyggede standardkonfigurationsværdier kan bruges jieba.NET.

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

JiebaNet skal tilføje en konfigurationsmappe, koden er som følger:

Testen skabte 500 nye dokumenter (relateret til min faktiske situation, kun til reference), og disken optager 119KB, som vist i figuren nedenfor:



(Slut)




Tidligere:Følg den officielle konto og få "invitationskoden" gratis
Næste:.NET konverterer databasens varbinary-streng til et byte[]-array
 Udlejer| Opslået den 29-10-2023 kl. 18:10:40 |
Elasticsearch (ES) kan ikke skrive data til fejlløsningen
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch rydder automatisk op i indekser for at frigøre diskplads
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x bruger xpack til sikkerhedsautentificering
https://www.itsvse.com/thread-10206-1-1.html

Udrul Elasticsearch-tjenesten ved hjælp af Docker
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch bruger elasticdump til at tage backup og migrere data
https://www.itsvse.com/thread-10143-1-1.html

Installer den selvstændige version af elasticsearch 7.10.2 tutorialen på Windows
https://www.itsvse.com/thread-9962-1-1.html

Introduktion til Elasticsearch søgemarkeringskonfiguration
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Brug Elasticsearch-fejlfinding til at se anmodnings- og svarinformation
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Jaeger-data bevares til elasticsearch
https://www.itsvse.com/thread-9553-1-1.html

Elasticsearch (ES) replikerer klonindekset
https://www.itsvse.com/thread-9545-1-1.html

Elasticsearch(ES) klyngesundhed: gul (6 af 7) status
https://www.itsvse.com/thread-9544-1-1.html

Elasticsearch(ES) klyngens sundhed: rød Fejlanalyse
https://www.itsvse.com/thread-9543-1-1.html

Java Geolokationsinformation i ElasticSearch (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[felt skal være enten [lat], [lon] eller [geohash]]
https://www.itsvse.com/thread-6442-1-1.html

elasticsearch-mappingfield-type
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

【Practical Action】Kibana installationsvejledning til Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

Geogeografiske koordinater for Elasticsearchs avancerede funktionsfamilie
https://www.itsvse.com/thread-6399-1-1.html

ElasticSearch compound-forespørgsler skal, bør must_not bruges
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch sletter og indekserer alle dokumentdata
https://www.itsvse.com/thread-6321-1-1.html

[Egentlig kamp]. net/c# Kald elasticsearch-søgning via NEST [med kildekode]
https://www.itsvse.com/thread-6294-1-1.html

Årsager og løsninger for unassigned_shards enkeltnode Elasticsearch
https://www.itsvse.com/thread-6193-1-1.html

Vejledning til installation af elasticsearch-analysis-ik i elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

Installer elasticsearch-6.5.2 elasticsearch-head plugin'et
https://www.itsvse.com/thread-6190-1-1.html

Centos 7 installation og udrulning elasticsearch-6.5.2 vejledning
https://www.itsvse.com/thread-6173-1-1.html

Valg af søgemaskiner: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Udlejer| Opslået den 5-11-2023 21:27:45 |
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com