Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 4068|Atbildi: 2

[Avots] [Praktiskā cīņa] Izmantojiet Lucene.Net + Jieba.NET, lai izveidotu vieglu meklēšanu vietnē

[Kopēt saiti]
Publicēts 2023-10-29 18:05:43 | | | |
Prasības: Pilnteksta meklēšana vietnē ir bieži izmantota funkcija, un to parasti izmanto, pamatojoties uz toElastīga meklēšanaSolrsIzvietošana un izstrāde, un tagad ir izlaisti divi jauniAtkārtota meklēšanaMeiliSearchMeklētājprogramma, pirmie divi ir smagāki, lai gan pēdējie divi nav tik smagi kā pirmie divi, bet joprojām ir jāizvieto atkarīgi pakalpojumi, šajā rakstā tiek izmantoti Lucene.Net + Jieba.NET, lai izveidotu vieglu meklēšanu uz vietas.

Lucene.Net

Lucene.Net ir Lucene .NET ports, un tas ir atvērtā koda pilnteksta meklētājprogrammu izstrādes komplekts, t.i., tā nav pilna pilna teksta meklētājprogramma, bet pilnteksta meklētājprogrammas arhitektūra, kas nodrošina pilnīgu vaicājumu un indeksēšanas programmu.

Vietnes:Hipersaites pieteikšanās ir redzama.
GitHub adrese:Hipersaites pieteikšanās ir redzama.

Jieba.NET

Jieba.NET ir ķīniešu jieba. .NET versija (C# ieviešana). Tas var veikt tādas funkcijas kā vārdu segmentēšana, runas daļas anotācija, atslēgvārdu ekstrakcija utt.

GitHub adrese:Hipersaites pieteikšanās ir redzama.

Vispirms apskatīsim atveidojumus:




Analizatora pielāgošana

Analizators, TokenStream, Tokenizer, TokenFilterTokenStream Lucene TokenStream: straume, kas iegūta pēc tokenizatora apstrādes. Šajā straumē tiek glabāta dažāda informācija par vārdu segmentāciju, ko var efektīvi iegūt, izmantojot TokenStream. Tālāk ir aprakstīts failu plūsmas pārvēršanas process par TokenStream Pirmkārt, izmantojiet Tokenizer, lai segmentētu vārdus, dažādiem tokenizatoriem ir dažādi tokenzieri, pēc tam, kad tokenzier ir atdalīts, filtrējiet datus, kas ir sadalīti vārdos, izmantojot TokenFilter, piemēram, pieturvārdus. Pēc filtrēšanas apvienojiet visus datus TokenStream.

Atsauce:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.


Lai pielāgotu Lucene analizatoru, pamatojoties uz Jieba.NET, pirmā atsauce ir šāda:



Skatiet tieši Lucene.Net.Analysis.Common pakotni, jo Lucene.Net.Analysis.Common automātiskai lejupielādei ir atkarīga no Lucene.Net pakotnes.

Izveidojiet jaunu JiebaTokenizer.cs ar šādu kodu:

Izveidojiet jaunu JiebaAnalyzer.cs ar šādu kodu:



Lucene.Net Jaunu dokumentu izveide un meklēšana

Pievienojiet datus no vietnes Lucene regulāri vai aktivizēti, un Lucene saglabā dokumentu fiziskā diskā, izmantojot analizatoru, un pēc tam izsauc meklēšanas interfeisu, lai to atrastu.

LuceneHelper palīdzības klases kods ir šāds:



Krātuve veikalā

Store.YES: Tas ne tikai indeksēs datus, bet arī saglabās datus, lai meklēšanas rezultāti varētu atgriezt lauka informāciju.
Store.NO: Tiks indeksēti tikai dati, un dati netiks saglabāti, un meklēšanas rezultāti nevar iegūt šo lauka informāciju.Ietaupa vietu diskā

Kā parādīts zemāk:




Lauka lauka tips

Lucene.Net lauku tipi ir Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Lūdzu, izmantojiet atbilstošu datu veidu atbilstoši jūsu situācijai.

TextField salīdzinājumā ar StringField

TextField noteikti tiks leksikalizēts, StringField neveiks dokumentā saglabātā satura leksisko analīzi, skatiet:Hipersaites pieteikšanās ir redzama.

Notiek salikta meklēšana


Ir 6 kombinācijas:

1. MUST un MUST: iegūstiet secīgu vaicājumu klauzulu krustojumu.
2. MUST un MUST_NOT: norāda, ka vaicājuma rezultātos nevar iekļaut vaicājuma klauzulas meklēšanas rezultātus, kas atbilst MUST_NOT.
3.SHOULD un MUST_NOT: Lietojot nepārtraukti, funkcija ir tāda pati kā MUST un MUST_NOT.
4. Ja SHOULD un MUST tiek izmantoti kopā, rezultāts ir klauzulas MUST meklēšanas rezultāts, bet SHOULD var ietekmēt kārtošanu.
5. VAJADZĒTU un VAJADZĒTU: norāda saistību starp "vai", un galīgais meklēšanas rezultāts ir visu meklēšanas klauzulu savienība.
6.MUST_NOT un MUST_NOT: bezjēdzīga, atgūšana bez rezultātiem.


Projekta izpilde

Šajā brīdī varat sākt projektu, lai pievienotu, atjauninātu un meklētu interfeisa kodu šādi:


Par kļūdām var ziņot šādi:

Pieprasījuma apstrādes laikā radās neapstrādāts izņēmums.
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(virkne fullPath, FileMode režīms, piekļuve FileAccess, FileShare koplietošana, FileOptions opcijas)

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

jieba.net Pēc instalēšanas direktorijā pakotnes\jieba.NET varat redzēt direktoriju Resursi, kas satur vārdnīcu un citus datu failus, kas nepieciešami jieba.NET palaišanai, un vienkāršākā konfigurācijas metode ir kopēt visu resursu direktoriju direktorijā, kurā atrodas montāža, lai iebūvētās noklusējuma konfigurācijas vērtības tiktu izmantotas jieba.NET.

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

JiebaNet ir jāpievieno konfigurācijas mape, kods ir šāds:

Testa laikā tika izveidoti 500 jauni dokumenti (saistīti ar manu faktisko situāciju, tikai uzziņai), un disks aizņem 119 KB, kā parādīts zemāk redzamajā attēlā:



(Beigas)




Iepriekšējo:Sekojiet oficiālajam kontam un saņemiet "ielūguma kodu" bez maksas
Nākamo:.NET pārvērš datu bāzes varbināro virkni par baitu[] masīvu
 Saimnieks| Publicēts 2023-10-29 18:10:40 |
Elasticsearch (ES) neizdodas rakstīt datus kļūdas risinājumā
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch automātiski attīra indeksus, lai atbrīvotu vietu diskā
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x izmanto xpack drošības autentifikācijai
https://www.itsvse.com/thread-10206-1-1.html

Elasticsearch pakalpojuma izvietošana, izmantojot Docker
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch izmanto elasticdump, lai dublētu un migrētu datus
https://www.itsvse.com/thread-10143-1-1.html

Elasticsearch 7.10.2 apmācības savrupās versijas instalēšana operētājsistēmā Windows
https://www.itsvse.com/thread-9962-1-1.html

Iepazīšanās ar Elasticsearch meklēšanas marķējumu konfigurāciju
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Izmantojiet Elasticsearch atkļūdošanu, lai skatītu pieprasījuma un atbildes informāciju
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Jaeger dati saglabājas elasticsearch
https://www.itsvse.com/thread-9553-1-1.html

Elasticsearch (ES) replicē klona indeksu
https://www.itsvse.com/thread-9545-1-1.html

Elasticsearch(ES) klastera darbspēja: dzeltens (6 no 7) statuss
https://www.itsvse.com/thread-9544-1-1.html

Elasticsearch(ES) klastera darbspēja: sarkana Kļūmes analīze
https://www.itsvse.com/thread-9543-1-1.html

Java ģeogrāfiskās atrašanās vietas informācija ElasticSearch (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[laukam jābūt [lat], [lon] vai [geohash]]
https://www.itsvse.com/thread-6442-1-1.html

elasticsearch-mappinglauka tips
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

【Praktiskā darbība】 Kibana instalēšanas apmācība Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

Elasticsearch uzlaboto funkciju saimes ģeogrāfiskās ģeogrāfiskās koordinātas
https://www.itsvse.com/thread-6399-1-1.html

ElasticSearch saliktie vaicājumi ir jāizmanto must_not
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch izdzēš un indeksē visus dokumenta datus
https://www.itsvse.com/thread-6321-1-1.html

[Faktiskā cīņa]. net/c# Zvaniet elasticsearch meklēšanu, izmantojot NEST [ar avota kodu]
https://www.itsvse.com/thread-6294-1-1.html

Viena mezgla Elasticsearch cēloņi un risinājumi unassigned_shards
https://www.itsvse.com/thread-6193-1-1.html

Apmācība par elasticsearch-analysis-ik instalēšanu elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

Elasticsearch-6.5.2 elasticsearch-head spraudņa instalēšana
https://www.itsvse.com/thread-6190-1-1.html

Centos 7 instalēšanas un izvietošanas elasticsearch-6.5.2 apmācība
https://www.itsvse.com/thread-6173-1-1.html

Meklētājprogrammas izvēle: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Saimnieks| Publicēts 2023-11-5 21:27:45 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com