Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 4068|Odpoveď: 2

[Zdroj] [Praktický boj] Použite Lucene.Net + Jieba.NET na vytvorenie ľahkého vyhľadávania priamo na mieste

[Kopírovať odkaz]
Zverejnené 29.10.2023 o 18:05:43 | | | |
Požiadavky: Fulltextové vyhľadávanie na stránke je bežne používaná funkcia a je na jej základe bežne využívanéElasticSearchSolrNasadenie a vývoj, a teraz boli vydané dve nové verzieRedisSearchMeiliSearchVyhľadávače, prvé dve sú ťažšie, hoci posledné dve nie sú také náročné ako prvé dve, ale stále musia nasadiť závislé služby, tento článok používa Lucene.Net + Jieba.NET na vytvorenie ľahkého vyhľadávania na stránke.

Lucene.Net

Lucene.Net je .NET port Lucene a je open-source vývojová sada fulltextového vyhľadávača, t. j. nie je to fulltextový vyhľadávač, ale fulltextová vyhľadávacia architektúra, ktorá poskytuje kompletný dotazovací a indexovací engine.

Stavenisko:Prihlásenie na hypertextový odkaz je viditeľné.
GitHub adresa:Prihlásenie na hypertextový odkaz je viditeľné.

Jieba.NET

Jieba.NET je príčastie čínskeho jieba. .NET verzia (implementácia v C#). Dokáže vykonávať funkcie ako segmentácia slov, anotácia slovných druhov, extrakcia kľúčových slov a podobne pre čínsky text a podporuje vlastné slovníky.

GitHub adresa:Prihlásenie na hypertextový odkaz je viditeľné.

Najprv sa pozrime na vizualizácie:




Prispôsobiť analyzátor

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream v Lucene TokenStream: Stream získaný po spracovaní tokenizéra. Tento stream uchováva rôzne informácie o segmentácii slov, ktoré je možné efektívne získať cez TokenStream. Nasleduje proces konverzie súborového toku na TokenStream. Najprv použite Tokenizer na segmentáciu slov, rôzne tokenizéry majú rôzne tokenziery, po oddelení tokenzieru filtrujte dáta rozdelené na slová cez TokenFilter, napríklad stopové slová. Po filtrovaní skombinujte všetky dáta do TokenStreamu.

Referencia:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.


Na prispôsobenie analyzátora Lucene na základe Jieba.NET je prvá referencia nasledovná:



Pozrite sa priamo na balík Lucene.Net.Analysis.Common, pretože Lucene.Net.Analysis.Common sa spolieha na automatické sťahovanie Lucene.Net balíka.

Vytvorte nový JiebaTokenizer.cs s nasledujúcim kódom:

Vytvorte nový JiebaAnalyzer.cs s nasledujúcim kódom:



Lucene.Net Vytváranie nových dokumentov a vyhľadávania

Pridajte dáta z webovej stránky do Lucene pravidelne alebo spúšťane, a Lucene uloží dokument na fyzický disk cez analyzátor a potom zavolá vyhľadávacie rozhranie, aby ho našiel.

Kód pomocnej triedy LuceneHelper je nasledovný:



Skladovanie v obchode

Store.YES: Nielenže indexuje dáta, ale aj uloží údaje, takže výsledky vyhľadávania môžu vrátiť informácie o poliach.
Store.NO: Indexované budú iba údaje, údaje sa neuložia a výsledky vyhľadávania nemôžu získať informácie o tomto poli.Šetrí miesto na disku

Ako je uvedené nižšie:




Typ poľa

Typy polí v Lucene.Net sú Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Prosím, použite vhodný typ údajov podľa vašej situácie.

TextField vs. StringField

TextField bude určite lexikalizovaný, StringField nebude vykonávať lexikálnu analýzu obsahu uloženého v dokumente, pozri:Prihlásenie na hypertextový odkaz je viditeľné.

Prebehnite komplexné vyhľadávanie


Existuje 6 kombinácií nasledujúcich:

1. MUSÍ a MUSÍ: Získajte prienik po sebe idúcich dopytových klauzúl.
2. MUSÍ a MUST_NOT: Označuje, že výsledky vyhľadávania dotazovej klauzuly zodpovedajúcej MUST_NOT nemôžu byť zahrnuté vo výsledkoch dotazu.
3. SHOULD a MUST_NOT: Pri nepretržitom použití je funkcia rovnaká ako MUSÍ a MUST_NOT.
4. Keď sa SHOULD a MUST používajú spolu, výsledkom je výsledok vyhľadávania klauzuly MUST, ale SHOULD môže ovplyvniť triedenie.
5. MAL by a MAL BY: Označuje vzťah medzi "alebo" a konečný výsledok vyhľadávania je zjednotením všetkých vyhľadávacích klauzúl.
6.MUST_NOT a MUST_NOT: bezvýznamné, získanie bez výsledkov.


Spustite projekt

V tomto bode môžete začať projekt na pridávanie, aktualizáciu a vyhľadávanie kódu rozhrania nasledovne:


Chyby môžu byť hlásené nasledovne:

Počas spracovania požiadavky došlo k nespracovanej výnimke.
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(string fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)

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

jieba.net Po inštalácii môžete vidieť adresár Resources v adresári packages\jieba.NET, ktorý obsahuje slovník a ďalšie dátové súbory potrebné na spustenie jieba.NET, a najjednoduchšou metódou konfigurácie je skopírovať celý adresár Resources do adresára, kde sa assembler nachádza, aby sa jieba.NET použili vstavané predvolené konfiguračné hodnoty.

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

JiebaNet potrebuje pridať konfiguračný priečinok, kód je nasledovný:

Test vytvoril 500 nových dokumentov (súvisiacich s mojou skutočnou situáciou, len pre referenciu) a disk zaberá 119KB, ako je znázornené na obrázku nižšie:



(Koniec)




Predchádzajúci:Sledujte oficiálny účet a získajte "pozývací kód" zadarmo
Budúci:.NET prevádza varbinárny reťazec databázy na pole bajtu[]
 Prenajímateľ| Zverejnené 29.10.2023 o 18:10:40 |
Elasticsearch (ES) nedokáže zapísať dáta do riešenia poruchy
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch automaticky čistí indexy, aby uvoľnil miesto na disku
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x používa xpack na bezpečnostnú autentifikáciu
https://www.itsvse.com/thread-10206-1-1.html

Nasadenie služby Elasticsearch pomocou Dockeru
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch používa elasticdump na zálohovanie a migráciu dát
https://www.itsvse.com/thread-10143-1-1.html

Nainštalujte samostatnú verziu tutoriálu elasticsearch 7.10.2 na Windows
https://www.itsvse.com/thread-9962-1-1.html

Úvod do konfigurácie vyhľadávania v Elasticsearch
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Použite ladenie Elasticsearch na zobrazenie informácií o požiadavkách a odpovediach
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Jaeger dáta pretrvávajú v elasticsearch
https://www.itsvse.com/thread-9553-1-1.html

Elasticsearch (ES) replikuje klonový index
https://www.itsvse.com/thread-9545-1-1.html

Stav klastra Elasticsearch(ES): žltý (6 z 7)
https://www.itsvse.com/thread-9544-1-1.html

Stav klastra Elasticsearch(ES): červená Analýza zlyhania
https://www.itsvse.com/thread-9543-1-1.html

Java geolokačné informácie v ElasticSearch (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[pole musí byť buď [lat], [lon] alebo [geohash]]
https://www.itsvse.com/thread-6442-1-1.html

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

【Praktická akcia】Inštalačný tutoriál Kibana pre Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

Geogeografické súradnice rodiny pokročilých príznakov Elasticsearch
https://www.itsvse.com/thread-6399-1-1.html

Zložené dotazy ElasticSearch musia must_not používať
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch maže a indexuje všetky dáta dokumentov
https://www.itsvse.com/thread-6321-1-1.html

[Skutočný boj]. net/c# Volajte elasticsearch search cez NEST [so zdrojovým kódom]
https://www.itsvse.com/thread-6294-1-1.html

Príčiny a riešenia pre unassigned_shards jednouzlového Elasticsearch
https://www.itsvse.com/thread-6193-1-1.html

Návod na inštaláciu elasticsearch-analysis-ik v elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

Nainštalujte elasticsearch-6.5.2 elasticsearch-head plugin
https://www.itsvse.com/thread-6190-1-1.html

Inštalácia a nasadenie Centos 7 elasticsearch-6.5.2 tutoriál
https://www.itsvse.com/thread-6173-1-1.html

Výber vyhľadávača: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Prenajímateľ| Zverejnené 5.11.2023 21:27:45 |
Vyhľadajte testovaciu adresu:https://www.itsvse.com/blog_xzz.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com