Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 4068|Odpověď: 2

[Zdroj] [Praktický boj] Použijte Lucene.Net + Jieba.NET k vytvoření lehkého vyhledávání přímo na místě

[Kopírovat odkaz]
Zveřejněno 29. 10. 2023 18:05:43 | | | |
Požadavky: Fulltextové vyhledávání na webu je běžně používaná funkce a je na jejím základě běžně využívánoElasticSearchSolrNasazení a vývoj, a nyní byly vydány dva novéRedisSearchMeiliSearchVe vyhledávačích jsou první dvě těžší, i když poslední dvě nejsou tak náročné jako první dvě, ale stále musí nasadit závislé služby, tento článek využívá Lucene.Net + Jieba.NET k vytvoření lehkého vyhledávání na webu.

Lucene.Net

Lucene.Net je .NET port Lucene a je open-source vývojová sada pro fulltextový vyhledávací engine, tj. není to plnotextový vyhledávací engine, ale fulltextová vyhledávací architektura, která poskytuje kompletní dotazovací a indexační engine.

Poloha:Přihlášení k hypertextovému odkazu je viditelné.
Adresa GitHubu:Přihlášení k hypertextovému odkazu je viditelné.

Jieba.NET

Jieba.NET je příčestí čínské jieba. .NET verze (implementace v C#). Dokáže provádět funkce jako segmentace slov, anotace slovních druhů, extrakce klíčových slov atd. pro čínský text a podporuje vlastní slovníky.

Adresa GitHubu:Přihlášení k hypertextovému odkazu je viditelné.

Nejprve se podívejme na vizualizace:




Přizpůsobit analyzátor

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream v Lucene TokenStream: Stream získaný po zpracování tokenizéru. Tento stream uchovává různé informace o segmentaci slov, které lze efektivně získat pomocí TokenStream. Následuje proces převodu souborového toku na TokenStream. Nejprve použijte Tokenizer k rozdělení slov, různé tokenizéry mají různé tokenziery, po oddělení tokenzieru filtrujte data rozdělená na slova přes TokenFilter, například stop words. Po filtrování spojte všechna data do TokenStreamu.

Odkaz:

Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.


Pro přizpůsobení analyzátoru Lucene na základě Jieba.NET je první odkaz následující:



Přímo se podívejte na balíček Lucene.Net.Analysis.Common, protože Lucene.Net.Analysis.Common spoléhá na automatické stažení balíčku Lucene.Net.

Vytvořte nový JiebaTokenizer.cs s následujícím kódem:

Vytvořte nový JiebaAnalyzer.cs s následujícím kódem:



Lucene.Net Vytváření nových dokumentů a vyhledávání

Přidávejte data z webu do Lucene pravidelně nebo spouštěně, Lucene ukládá dokument na fyzický disk přes analyzátor a poté volá vyhledávací rozhraní, aby je našel.

Kód nápovědy LuceneHelper je následující:



Skladování v obchodě

Store.YES: Nejenže indexuje data, ale také je uloží, takže výsledky vyhledávání mohou vracet informace o poli.
Store.NO: Indexována budou pouze data, data nebudou uložena a výsledky vyhledávání nemohou získat informace o tomto poli.Šetří místo na disku

Jak je uvedeno níže:




Typ pole pole

Typy polí v Lucene.Net jsou Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Použijte prosím vhodný typ dat podle vaší situace.

TextField vs. StringField

TextField bude určitě lexikalizovaný, StringField nebude provádět lexikální analýzu obsahu uloženého v doc, viz na:Přihlášení k hypertextovému odkazu je viditelné.

Proběhnout komplexní vyhledávání


Existuje 6 kombinací následujících:

1. MUSÍ a MUSÍ: Získejte průnik po sobě jdoucích dotazovacích klauzul.
2. MUSÍ a MUST_NOT: Označuje, že výsledky vyhledávání dotazovací klauzule odpovídající MUST_NOT nelze zahrnout do výsledků dotazu.
3. SHOULD a MUST_NOT: Při nepřetržitém použití je funkce stejná jako MUSÍ a MUST_NOT.
4. Když jsou SHOULD a MUST použity společně, výsledkem je výsledek vyhledávání klauzule MUST, ale SHOULD může ovlivnit třídění.
5. MĚLO by a MĚLO BYCH: Označuje vztah mezi "nebo" a konečným výsledkem vyhledávání je sjednocení všech vyhledávacích klauzul.
6.MUST_NOT a MUST_NOT: bezvýznamné, vyhledávání bez výsledků.


Provozujte projekt

V této fázi můžete začít projekt přidávat, aktualizovat a vyhledávat kód rozhraní následovně:


Chyby mohou být hlášeny následovně:

Při zpracování požadavku došlo k nezpracované výjimce.
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 instalaci můžete v adresáři balíčky\jieba.NET vidět adresář Resources, který obsahuje slovník a další datové soubory potřebné k jieba.NET, a nejjednodušší konfigurační metodou je zkopírovat celý adresář Resources do adresáře, kde se assembler nachází, aby se jieba.NET používaly vestavěné výchozí konfigurační hodnoty.

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

JiebaNet potřebuje přidat konfigurační složku, kód je následující:

Test vytvořil 500 nových dokumentů (souvisejících s mou skutečnou situací, pouze pro informaci) a disk zabírá 119KB, jak je znázorněno na obrázku níže:



(Konec)




Předchozí:Sledujte oficiální účet a získejte "pozvánkový kód" zdarma
Další:.NET převádí varbinární řetězec databáze na pole bajtu[]
 Pronajímatel| Zveřejněno 29. 10. 2023 18:10:40 |
Elasticsearch (ES) selhává při zápisu dat do řešení poruchy
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch automaticky čistí indexy, aby uvolnil místo na disku
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x používá xpack pro bezpečnostní autentizaci
https://www.itsvse.com/thread-10206-1-1.html

Nasazení služby Elasticsearch pomocí Dockeru
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch používá elasticdump k zálohování a migraci dat
https://www.itsvse.com/thread-10143-1-1.html

Nainstalujte samostatnou verzi tutoriálu elasticsearch 7.10.2 na Windows
https://www.itsvse.com/thread-9962-1-1.html

Úvod do konfigurace vyhledávacích zvýraznění v Elasticsearch
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Použijte ladění Elasticsearch pro zobrazení informací o požadavcích a odpovědích
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Data Jaegera přetrvá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 clusteru Elasticsearch(ES): žlutý (6 ze 7)
https://www.itsvse.com/thread-9544-1-1.html

Stav clusteru Elasticsearch(ES): červená Analýza selhání
https://www.itsvse.com/thread-9543-1-1.html

Java geolokační informace v ElasticSearch (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[pole musí být buď [lat], [lon] nebo [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á akce】Instalační tutoriál Kibana pro Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

Geogeografické souřadnice pokročilé rodiny rysů Elasticsearch
https://www.itsvse.com/thread-6399-1-1.html

Složené dotazy ElasticSearch musí, měly by must_not používat
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch maže a indexuje všechna data dokumentů
https://www.itsvse.com/thread-6321-1-1.html

[Skutečný boj]. net/c# Volejte elasticsearch search přes NEST [se zdrojovým kódem]
https://www.itsvse.com/thread-6294-1-1.html

Příčiny a řešení unassigned_shards jednouzlového Elasticsearch
https://www.itsvse.com/thread-6193-1-1.html

Tutoriál k instalaci elasticsearch-analysis-ik v elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

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

Instalace a nasazení CentOS 7 elasticsearch-6.5.2 tutoriál
https://www.itsvse.com/thread-6173-1-1.html

Výběr vyhledávače: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Pronajímatel| Zveřejněno 5. 11. 2023 21:27:45 |
Adresa testu vyhledávání:https://www.itsvse.com/blog_xzz.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com