Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 4068|Vastaus: 2

[Lähde] [Käytännön taistelu] Käytä Lucene.Net + Jieba.NET rakentaaksesi kevyen paikan sisäisen haun

[Kopioi linkki]
Julkaistu 29.10.2023 klo 18:05:43 | | | |
Vaatimukset: Koko tekstin haku sivustolla on yleisesti käytetty toiminto, ja sitä käytetään yleisesti sen pohjaltaElasticSearchSolrKäyttöönotto ja kehitys, ja nyt kaksi uutta on julkaistuRedisSearchMeiliSearchHakukoneet, ensimmäiset kaksi ovat raskaampia, vaikka viimeiset eivät ole yhtä raskaita kuin kaksi ensimmäistä, mutta vaativat silti riippuvaisia palveluita, tässä artikkelissa käytetään Lucene.Net + Jieba.NET kevyen paikan päällä tehtävän haun rakentamiseen.

Lucene.Net

Lucene.Net on .NET-porttaus Lucenesta ja avoimen lähdekoodin kokotekstihakukoneen kehityspaketti, eli se ei ole kokotekstihakukone, vaan kokotekstihakukonearkkitehtuuri, joka tarjoaa täydellisen hakukoneen ja indeksointimoottorin.

Paikka:Hyperlinkin kirjautuminen on näkyvissä.
GitHub-osoite:Hyperlinkin kirjautuminen on näkyvissä.

Jieba.NET

Jieba.NET on partisiipin kiinalainen jieba. .NET-versio (C#-toteutus). Se pystyy suorittamaan toimintoja kuten sanasegmentointia, sananotointia, avainsanojen poimimista jne. kiinalaiselle tekstille, ja tukee räätälöityjä sanakirjoja.

GitHub-osoite:Hyperlinkin kirjautuminen on näkyvissä.

Katsotaanpa ensin renderöintiä:




Muokkaa analysaattoria

Analyzer, TokenStream, Tokenizer, TokenFilterTokenStream in Lucene TokenStream: Stream, joka saadaan tokenizaattorin käsittelyn jälkeen. Tämä virta tallentaa erilaisia tietoja sanasegmentoinnista, jotka voidaan tehokkaasti saada TokenStreamin kautta. Seuraavassa on prosessi, jossa tiedostovirta muunnetaan TokenStreamiksi Ensin käytä tokenizeria sanojen segmentointiin, eri tokenizaattoreilla on eri tokenzierit, ja kun tokenzier on erotettu, suodata TokenFilterin kautta sanoiksi jaettu data, kuten stop-sanat. Suodattamisen jälkeen yhdistä kaikki data TokenStreamiksi.

Viittaus:

Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.


Lucene-analysaattorin räätälöintiin Jieba.NET perusteella ensimmäinen viite on seuraava:



Viittaa suoraan Lucene.Net.Analysis.Common -pakettiin, sillä Lucene.Net.Analysis.Common lataa automaattisesti Lucene.Net-paketin.

Luo uusi JiebaTokenizer.cs seuraavalla koodilla:

Luo uusi JiebaAnalyzer.cs seuraavalla koodilla:



Lucene.Net Luo uusia asiakirjoja ja hakuja

Lisää dataa verkkosivustolta Luceneen säännöllisesti tai laukaisevasti, ja Lucene tallentaa dokumentin fyysiselle levylle analysoijan kautta, ja kutsuu sitten hakukäyttöliittymän löytääkseen sen.

LuceneHelperin ohjeluokkakoodi on seuraava:



Varastosäilytys

Store.YES: Se ei ainoastaan indeksoi dataa, vaan myös tallentaa tiedot, jotta hakutulokset voivat palauttaa kenttätiedot.
Store.NO: Vain data indeksoidaan, eikä data tallenneta, eikä hakutulokset voi saada tätä kenttätietoa.Säästää levytilaa

Kuten alla on esitetty:




Kenttätyyppi

Lucene.Net kenttätyypit ovat Int32Field, Int64Field, SingleField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField, Käytä tilanteeseesi sopivaa tietotyyppiä.

TextField vs. StringField

TextField tullaan varmasti leksikalisoitumaan, StringField ei tee leksikaalista analyysiä dokumenttiin tallennetusta sisällöstä, katso:Hyperlinkin kirjautuminen on näkyvissä.

Tapahtuu yhdistehaku


Seuraavista on 6 yhdistelmää:

1. TÄYTYY ja TÄYTYY: Ymmärrä peräkkäisten kyselylausekkeiden leikkauspiste.
2. TÄYTYY ja MUST_NOT: Tarkoittaa, että MUST_NOT vastaavan kyselylausekkeen hakutuloksia ei voida sisällyttää kyselyn tuloksiin.
3.SHOULD ja MUST_NOT: Kun niitä käytetään jatkuvasti, funktio on sama kuin MUST ja MUST_NOT.
4. Kun SHOULD ja MUST käytetään yhdessä, tulos on MUST-lauseen hakutulos, mutta SHOULD voi vaikuttaa lajitteluun.
5. PITÄISI ja PITÄISI: Ilmaisee suhteen "tai"-lauseen välillä, ja lopullinen hakutulos on kaikkien hakulausekkeiden yhdistelmä.
6.MUST_NOT ja MUST_NOT: merkityksetön, tulokseton palautus.


Johda projekti

Tässä vaiheessa voit aloittaa projektin lisätäksesi, päivittääksesi ja etsiäksesi käyttöliittymäkoodia seuraavasti:


Virheitä voidaan raportoida seuraavasti:

Käsittelemätön poikkeus tapahtui pyynnön käsittelyn aikana.
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-asetukset)

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

jieba.net Asennuksen jälkeen näet Resources-kansion packages\jieba.NET-hakemistossa, joka sisältää sanakirjan ja muut datatiedostot, jotka vaaditaan jieba.NET suorittamiseen, ja helpoin konfigurointitapa on kopioida koko Resources-hakemisto siihen hakemistoon, jossa assembly sijaitsee, jotta sisäänrakennetut oletusasetukset jieba.NET käytetään.

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

JiebaNetin täytyy lisätä konfiguraatiokansio, koodi on seuraava:

Testi loi 500 uutta asiakirjaa (liittyen omaan tilanteeseeni, vain viitteeksi), ja levy vie 119KB, kuten alla olevassa kuvassa näkyy:



(Loppu)




Edellinen:Seuraa virallista tiliä ja saat "kutsukoodin" ilmaiseksi
Seuraava:.NET muuntaa tietokannan varbinäärisen merkkijonon tavu[] taulukoksi
 Vuokraisäntä| Julkaistu 2023-10-29 klo 18:10:40 |
Elasticsearch (ES) ei kirjoita tietoja vikaratkaisuun
https://www.itsvse.com/thread-10568-1-1.html

Elasticsearch puhdistaa automaattisesti indeksit vapauttaakseen levytilaa
https://www.itsvse.com/thread-10273-1-1.html

Elasticsearch-7.x käyttää xpackia turvallisuuden tunnistautumiseen
https://www.itsvse.com/thread-10206-1-1.html

Ota käyttöön Elasticsearch-palvelu Dockerin avulla
https://www.itsvse.com/thread-10148-1-1.html

Elasticsearch käyttää elasticdumpia datan varmuuskopiointiin ja siirtämiseen
https://www.itsvse.com/thread-10143-1-1.html

Asenna erillinen elasticsearch 7.10.2 -opas Windowsille
https://www.itsvse.com/thread-9962-1-1.html

Johdanto Elasticsearch-haun korostuskonfiguraatioon
https://www.itsvse.com/thread-9562-1-1.html

.NET/C# Käytä Elasticsearchin virheenkorjausta pyyntö- ja vastaustietojen katseluun
https://www.itsvse.com/thread-9561-1-1.html

ASP.NET Core Link Trace (5) Jaeger-data säilyy elasticsearchiin
https://www.itsvse.com/thread-9553-1-1.html

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

Elasticsearch(ES) klusterin terveys: keltainen (6/7) tila
https://www.itsvse.com/thread-9544-1-1.html

Elasticsearch(ES) klusterin terveys: punainen vika-analyysi
https://www.itsvse.com/thread-9543-1-1.html

Java-paikannustiedot ElasticSearchissa (geo_point)
https://www.itsvse.com/thread-6444-1-1.html

ElasticsearchParseException[kentän tulee olla joko [lat], [lon] tai [geohash]]
https://www.itsvse.com/thread-6442-1-1.html

elasticsearch-mappingfield-tyyppi
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-asennusopas Elasticsearchille
https://www.itsvse.com/thread-6400-1-1.html

Elasticsearchin kehittyneiden ominaisuuksien perheen maantieteelliset koordinaatit
https://www.itsvse.com/thread-6399-1-1.html

ElasticSearch-yhdistelmäkyselyt täytyy, pitäisi must_not käyttää
https://www.itsvse.com/thread-6334-1-1.html

Elasticsearch poistaa ja indeksoi kaikki asiakirjatiedot
https://www.itsvse.com/thread-6321-1-1.html

[Varsinaista taistelua]. net/c# Kutsu elasticsearch-hakua NEST:n kautta [lähdekoodin kanssa]
https://www.itsvse.com/thread-6294-1-1.html

Syitä ja ratkaisuja unassigned_shards yksisolmuiselle Elasticsearchille
https://www.itsvse.com/thread-6193-1-1.html

Opas elasticsearch-analysis-ik:n asentamiseen elasticsearch-6.5.2:een
https://www.itsvse.com/thread-6191-1-1.html

Asenna elasticsearch-6.5.2 elasticsearch-head -lisäosa
https://www.itsvse.com/thread-6190-1-1.html

Centos 7 asennus ja käyttöönotto elasticsearch-6.5.2 -opas
https://www.itsvse.com/thread-6173-1-1.html

Hakukonevalinta: Elasticsearch vs Solr
https://www.itsvse.com/thread-6168-1-1.html
 Vuokraisäntä| Julkaistu 2023-11-5 21:27:45 |
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com