Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 4068|Válasz: 2

[Forrás] [Praktiki harc] Használd Lucene.Net + Jieba.NET segítségével könnyű, helyszíni keresést építs

[Linket másol]
Közzétéve: 2023-10-29, 18:05:43 | | | |
Követelmények: A teljes szöveges keresés az oldalon egy általánosan használt funkció, és ezt alaposan használjákElasticSearchSolrBevezetés és fejlesztés, és most két új is megjelentRedisSearchMeiliSearchKeresőmotor, az első kettő nehezebb, bár az utolsó kettő nem olyan nehez, mint az első kettő, de mégis függő szolgáltatásokat kell telepíteniük, ez a cikk Lucene.Net + Jieba.NET segítségével könnyű, oldali keresést épít fel.

Lucene.Net

Lucene.Net a Lucene .NET portja, és egy nyílt forráskódú, teljes szöveges keresőmotor-fejlesztő készlet, vagyis nem teljes szöveges keresőmotor, hanem teljes szöveges keresőmotor-architektúra, amely teljes lekérdezési motort és indexezőmotort biztosít.

Telephely:A hiperlink bejelentkezés látható.
GitHub cím:A hiperlink bejelentkezés látható.

Jieba.NET

Jieba.NET egy participális kínai jieba. .NET verzió (C# implementáció). Képes olyan funkciókat ellátni, mint a szószegmentálás, szórész megjegyzése, kulcsszó kivonása stb. kínai szöveghez, és támogatja az egyedi szótárokat.

GitHub cím:A hiperlink bejelentkezés látható.

Először nézzük meg a rendereléseket:




Testreszabni az analizátort

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream a Lucene TokenStreamben: Egy stream, amelyet a tokenizátor feldolgozása után szereztek be. Ez az áramfolyam különféle információkat tárol a szószegmentálásról, amelyeket hatékonyan lehet elérni a TokenStreamen keresztül. Az alábbiakban következik a fájlfolyam TokenStreamré átalakításának folyamata: Először használd a tokenizert a szavak szegmentesítésére, a különböző tokenizereknek különböző tokenzierei vannak, miután a tokenzier szétvál, szűrjék a TokenFilteren keresztül a szavakká bontott adatokat, például a stop szavakat. A szűrés után egyesítse az összes adatot egy TokenStreambe.

Utalás:

A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.


A Lucene analizátor Jieba.NET alapján testreszabásához az első hivatkozás a következő:



Közvetlenül a Lucene.Net.Analysis.Common csomagra hivatkozhatunk, mivel a Lucene.Net.Analysis.Common automatikusan a Lucene.Net csomagra támaszkodik.

Hozz létre új JiebaTokenizer.cs a következő kóddal:

Hozz létre új JiebaAnalyzer.cs a következő kóddal:



Lucene.Net Új dokumentumok és keresések létrehozása

Rendszeresen vagy trigger módon hozzáadja a weboldal adatait a Lucene-hez, a Lucene pedig egy fizikai lemezen tárolja a dokumentumot az elemzőn keresztül, majd a keresőfelületet hívja, hogy megtalálja.

A LuceneHelper segítő osztálykód a következő:



Tároló tárolás

Store.YES: Nemcsak indexelni fogja az adatokat, hanem elmenti is, hogy a keresési eredmények visszaadhassák a mező adatait.
Store.NO: Csak az adatokat indexeljük, az adatok nem mentődnek el, és a keresési eredmények nem kaphatják meg ezt a mező információt.Lemez helyet takarít meg

Ahogy az alábbiakban látható:




Mezőmező típus

A Lucene.Net mezőtípusai: Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Kérjük, használd a megfelelő adattípust a saját helyzetedhez igazítva.

TextField vs. StringField

A TextField mindenképpen lexikalizált lesz, a StringField nem végez lexikalis elemzést a doc-ban tárolt tartalomról, lásd például:A hiperlink bejelentkezés látható.

Összetett keresés


Az alábbiak 6 kombinációja létezik:

1. KÖTELEZŐ és KELL: Ismerd meg az egymást követő lekérdezési záradékok metszéspontját.
2. KÖTELEZ és MUST_NOT: Jelzi, hogy a MUST_NOT lekérdezési záradék keresési eredményei nem kerülhetnek bele a lekérdezési eredményekbe.
3.SHOULD és MUST_NOT: Folyamatos használat esetén a függvény ugyanaz, mint a MUST és MUST_NOT.
4. Amikor a SHOULD és MUST szavakat együtt használják, az eredmény a MUST záradék keresési eredménye, de a SHOULD befolyásolhatja a rendezést.
5. KELLENE és KELL: Jelzi a "vagy" közötti kapcsolatot, és a végső keresési eredmény az összes keresési záradék egyesítése.
6.MUST_NOT és MUST_NOT: értelmetlen, eredménytelen visszakeresés.


A projekt vezetése

Ezen a ponton elindíthatod a projektet, hogy hozzáadhasd, frissítsd és keresd az interfész kódot az alábbiak szerint:


A hibák az alábbiak szerint jelenthetők:

A kérés feldolgozása közben kezeletlen kivétel történt.
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 mód, FileAccess hozzáférés, FileShare megosztás, FileOptions opciók)

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

jieba.net Telepítés után a Resources könyvtár a packages\jieba.NET könyvtárban látható, amely tartalmazza a jieba.NET futtatásához szükséges szótárt és egyéb adatfájlokat, és a legegyszerűbb konfigurációs módszer, ha az egész Resources könyvtárat átmásolod abba a könyvtárba, ahol az assembly található, így a beépített alapértelmezett konfigurációs értékek jieba.NET használatban maradnak.

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

A JiebaNet-nek konfigurációs mappát kell hozzáadnia, a kód a következő:

A teszt 500 új dokumentumot hozott létre (ami a tényleges helyzetemhez kapcsolódik, csak referenciaként), és a lemez 119KB-ot foglal el, ahogy az alábbi ábrán látható:



(Vége)




Előző:Kövesd a hivatalos fiókot, és szerezd meg ingyen a "meghívókódot"
Következő:A .NET átalakítja az adatbázis varbináris stringjét egy byte[] tömbjé[] tömbbe
 Háziúr| Közzétéve: 2023-10-29 18:10:40 |
Az Elasticsearch (ES) nem ír adatokat a hibamegoldáshoz
https://www.itsvse.com/thread-10568-1-1.html

Az Elasticsearch automatikusan tisztítja az indexeket, hogy felszabadítsa a lemezhelyet
https://www.itsvse.com/thread-10273-1-1.html

Az Elasticsearch-7.x xpack-et használ a biztonsági hitelesítéshez
https://www.itsvse.com/thread-10206-1-1.html

Telepítse az Elasticsearch szolgáltatást Docker segítségével
https://www.itsvse.com/thread-10148-1-1.html

Az Elasticsearch az elasticdumpot használja az adatok mentésére és migrációjára
https://www.itsvse.com/thread-10143-1-1.html

Telepítsd az elasticsearch 7.10.2 útmutató önálló verzióját Windowsra
https://www.itsvse.com/thread-9962-1-1.html

Bevezetés az Elasticsearch keresési kiemelő konfigurációba
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Használd az Elasticsearch hibakeresést a kérés- és válaszinformációk megtekintéséhez
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Jaeger adatok rugalmas keresésre maradnak
https://www.itsvse.com/thread-9553-1-1.html

Az elasticsearch (ES) replikálja a klón indexet
https://www.itsvse.com/thread-9545-1-1.html

Elasticsearch(ES) klaszter egészsége: sárga (6/7) állapot
https://www.itsvse.com/thread-9544-1-1.html

Elasticsearch(ES) klaszter egészsége: piros hibaelemzés
https://www.itsvse.com/thread-9543-1-1.html

Java geolokációs információk az ElasticSearch-ben (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

Az ElasticsearchParseException[mező vagy [lat], [lon] vagy [geohash]] lehet.
https://www.itsvse.com/thread-6442-1-1.html

Elasticsearch-mappingfield típus
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 installation tutorial for Elasticsearch
https://www.itsvse.com/thread-6400-1-1.html

A Elasticsearch fejlett jellemzők családjának földrajzi koordinátái
https://www.itsvse.com/thread-6399-1-1.html

Az ElasticSearch összetett lekérdezéseinek kell, kell, must_not kell használni
https://www.itsvse.com/thread-6334-1-1.html

Az Elasticsearch törli és indexeli az összes dokumentumadatot
https://www.itsvse.com/thread-6321-1-1.html

[Valódi harc]. net/c# Hívja a rugalmas keresést NEST-en keresztül [forráskóddal]
https://www.itsvse.com/thread-6294-1-1.html

Okai és megoldásai unassigned_shards egycsomópontos Elasticsearch számára
https://www.itsvse.com/thread-6193-1-1.html

Tutorial az elasticsearch-analysis-ik telepítéséhez az elasticsearch-6.5.2
https://www.itsvse.com/thread-6191-1-1.html

Telepítsd az elasticsearch-6.5.2 elasticsearch-head plugint
https://www.itsvse.com/thread-6190-1-1.html

Centos 7 telepítése és telepítése elasticsearch-6.5.2 tutorial
https://www.itsvse.com/thread-6173-1-1.html

Keresőmotor-választás: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Háziúr| Közzétéve: 2023-11-5 21:27:45 |
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com