Xapian er et Open Source Probabilistic Information Retrieval bibliotek, utgitt under GPL. Xapian iss skrevet i C, med bindinger for å tillate bruk av andre språk (Perl, Java, Python, PHP, og TCL øyeblikket støttes, Guile og C # blir jobbet på).
Xapian er designet for å være en svært tilpasningsdyktig verktøykasse for å tillate utviklere å enkelt legge avanserte indekserings og søk fasiliteter til sine egne applikasjoner.
Hvis du er ute etter en pakket søkemotor for nettstedet ditt, bør du ta en titt på Omega, som er et program vi leverer bygget på Xapian. Men i motsetning til de fleste andre nettstedet søkeløsninger, Xapian allsidighet gjør at du kan utvide Omega for å møte dine behov som de vokser
Egenskaper .
- < li> Free Software / Open Source -. lisensiert under GPL
- Meget bærbar - kjører på mange Linux, MacOS X, mange andre Unix-plattformer, og Microsoft Windows .
- Skrevet i C. Perl bindinger er tilgjengelig i modulen Søk :: Xapian på CPAN. Java JNI bindinger inngår i Xapian-bindinger modulen. Vi støtter også SWIG som kan generere bindinger for 13 språk. I dag de for Python, PHP4 og TCL jobber. Svik og C # blir jobbet på.
- Rangert probablistic søk - viktige ord få mer vekt enn uviktige ord, så de mest relevante dokumentene er mer sannsynlig å komme nær toppen av listen resultater .
- Relevans tilbakemeldinger - gitt ett eller flere dokumenter, Xapian kan foreslå de mest relevante indeks vilkår for å utvide en spørring, foreslår relaterte dokumenter, kategorisere dokumenter, etc .
- Phrase og nærhet søker -. Brukerne kan søke etter ord som forekommer i en eksakt frase eller innenfor et bestemt antall ord, enten i en bestemt rekkefølge, eller i hvilken som helst rekkefølge
- Fullt utvalg av strukturerte boolske søkeoperatorer (& quot; lager IKKE markedsføre & quot ;, etc). Resultatene av boolsk søk er rangert etter de probablistic vekter. Boolske filtre kan også brukes til å begrense en sannsynlighets søk.
- Støtter stemming av søkeord (f.eks et søk etter & quot; fotball & quot; treffe dokumenter som nevner & quot; fotballer & quot; eller & quot; fotballspiller & quot;). Dette bidrar til å finne relevante dokumenter som ellers kunne gått glipp av. Stemmers er nå inkludert for dansk, nederlandsk, engelsk, finsk, fransk, tysk, italiensk, norsk, portugisisk, russisk, spansk og svensk.
- Støtter databasefiler & gt; 2GB -. Avgjørende for skalering til store dokumentsamlinger
- Plattform uavhengige dataformater -. du kan bygge opp en database på en maskin og søk den på en annen
- Gir samtidig oppdatering og søking. Nye dokumenter blir søkbare med en gang.
- I tillegg til bibliotek, leverer vi en rekke små eksempel programmer, og en større søknad - en indeksering og CGI-basert program som heter omega:
- Indekser levert kan indeksere HTML, PHP, PDF, Postscript, og ren tekst. Å legge til støtte for indeksering andre formater er lett hvor konverteringsfiltre er tilgjengelig (for eksempel Microsoft Word). Dette indekser fungerer ved hjelp av arkivsystem, men vi gir også et skript for å tillate htdigs web crawler å bli hekta på, slik at eksterne nettsider som det skal søkes ved hjelp av Omega.
- Du kan også indeks data fra en SQL eller andre RDBMS støttes av Perl DBI modulen. Som inkluderer MySQL, PostgreSQL, SQLite, Sybase, MS SQL, LDAP, og ODBC.
- CGI søk front-end leveres med svært tilpasses utseende. Dette kan også tilpasses til å sende ut resultater i XML eller CSV, som er nyttig hvis du er dynamisk genererer sider (f.eks med PHP eller mod_perl) og bare ønsker rå søkeresultater som du kan behandle i din egen side layout kode.
Hva er nytt i denne utgaven:
- Denne versjonen fikser noen mindre bugs og legger til noen nye funksjoner .
Hva er nytt i versjon 1.2.4:
- Denne versjonen legger en API for sammenslåing og komprimering av databaser gjør mange forbedringer til Omega, inkluderer nye slurk baserte Perl bindinger, og fikser noen minnelekkasjer i Python bindinger.
Hva er nytt i versjon 1.0.22:
- Denne versjonen fikser flere mindre bugs, og forbedrer portabilitet .
Hva er nytt i versjon 1.0.21:
- Xapian-core API:
- Xapian :: Stem nå gjenkjenner & quot; nb & quot; og & quot; nn & quot; som tilleggskoder for den norske Stemmer.
- Xapian :: QueryParser nå analyserer riktig en jokertegn begrep i mellom to andre vilkår (Ticket # 484).
- Matcher:
- OP_OR kunne hoppe over et tilsvarende dokument hvis det henfalt til OP_AND eller OP_AND_MAYBE under kampen i noen tilfeller. Fikser billett # 476.
- OP_XOR med ikke-blad subqueries kunne hoppe over samsvarende dokumenter i noen tilfeller, og OP_XOR av tre eller flere sub-spørringer kan returnere uriktige vekter. Fikser billett # 475.
- OP_OR er nå mer effektiv hvis en delspørring er potensielt dyrt (f.eks OP_VALUE_RANGE, OP_NEAR, OP_PHRASE, PostingSource). En 10-fold speed-up med OP_VALUE_RANGE har blitt observert.
- Bygg System:
- Installer filer for å gjøre Xapian enklere å bruke med CPåse.
- Portabilitet:
- På x86-prosessorer, Xapian nå som standard bruker SSE2 FP instruksjoner. Dette unngår problemer med overflødig presisjon og det litt raskere også. Hvis du trenger å støtte prosessorer uten SSE2 (dette betyr pre-Pentium4 for Intel) så konfigurere med --disable-sse. (Billett # 387)
Hva er nytt i versjon 1.0.18:
- QueryParser:
- Bedre støtte for språk som burmesisk som bruker Unicode omsluttende mark og kombinere avstand mark tegn.
- Flint backend:
- Når du oppdaterer dokumenter, ikke oppdaterer poste innlegg som ikke har forandret seg (billett # 250).
- Fix låsekoden til å fungere hvis stdin og / eller stdout har vært stengt.
Hva er nytt i versjon 1.0.13:
- API:
- Xapian :: Dokument ikke lenger noen gang lagrer tomme verdier eksplisitt. Dette var ikke tilsiktet atferd, og hvordan denne saken ble håndtert ikke ble dokumentert. Den endrede atferden er forenlig med hvordan bruker metadata håndteres. Denne endringen er ikke observerbar bruker Document :: get_value (), men kan bli lagt merke til når itera med dokument :: values_begin (), ved hjelp av Document :: values_count (), eller prøver å slette verdien med dokument :: remove_value ().
- testsuite:
- Fix testcase scaleweight4 ikke å mislykkes på x86 når kompilert med -O0. Problemet var i testcase kode, og ble forårsaket av overflødig presisjon i mellom FP verdier.
- Test Cases som sjekker at driften har forventet O (...) oppførsel ingen sjekk CPU-tid i stedet for wallclock tid på de fleste plattformer, som skal eliminere tilfeldige feil grunn til å laste pigger fra andre prosesser.
- (billett # 308)
- Fix testbrudd skyldes SKIP_TEST_FOR_BACKEND (& quot; inmemory & quot;) ikke hopper når den skal grunnet sammenligne røye strenger med == (på trunk returverdien som testes er std :: string snarere enn const char *)
- Forbedre testdekning i flere hjørne tilfeller.
- Fix testcase consistency2 å faktisk kjøres (heldigvis den passerer).
- I de genererte test-tilfeller, ring get_description () på standard konstruert objekt av hver klasse for å være sikker på at fungerer (og ikke prøver å dereference NULL, eller svikte noen påstand, etc). Alle tiden sjekket klasser er bra - dette er for å unngå fremtidige regresjoner eller slike problemer med nye klasser .
- I testdekning bygge den, bruke & quot; - dekning & quot; i stedet for & quot; -fprofile-buer -ftest-dekning & quot;.
- Test sele har nå inmemory backend flagget som støtter brukerdefinerte metadata (bortsett fra iterasjon i løpet metadata nøkler).
- matcher:
- Hvis en spørring inneholder en MatchAll subquery, se etter det før du sjekker de andre vilkårene slik at løkken som sjekker hvor mange termer kamp kan avslutte tidlig hvis de alle kampen.
- Når en OR eller ANY_MAYBE henfalt til en AND, vi ble nøye bytte barna for maksimal effektivitet, men tilstanden ble reversert så vi var faktisk gjøre ting verre. Dette ble lagt merke til fordi det var noe som resulterer i den samme spørringen går raskere når flere resultater ble bedt om!
- Bare bygge termname å termfreq og vekt kartet for første subdatabase stedet for å gjenoppbygge det for hver enkelt. Også ikke kopiere dette kartet for å returnere den. Dette bør fremskynde søk litt, særlig de over flere databaser.
- Hvis en submatcher svikter men Errorhandler forteller oss å fortsette uten den, vi bare bruke en NULL-peker til å stå i stedet for å fordele en spesiell dummy plass-innehaver objekt.
- Fjern AndPostList, i favør av MultiAndPostList. AndPostList ble bare brukt som et forfall produkt (ved AndMaybePostList og OrPostList), og synes ikke å være noe raskere. Fjerne det reduserer CPU cache press, og er mindre kode å vedlikeholde.
- Call sjekk () i stedet for skip_to () på valgfri grenen av AND_MAYBE.
- flint backend:
- Fix en bug i TermIterator :: skip_to () over metadata nøklene.
- fjern backend:
- Fix Xapian-tcpsrv --interface muligheten til å jobbe med MacOS X (billett # 373).
- Fix skrivefeil som førte oss til å returnere docid i stedet for den maksimale vekten et dokument fra en ekstern kamp kunne komme tilbake! Dette kan ha ført til feil resultater ved søk i flere databaser med fjern backend, men sannsynligvis vanligvis gjorde ikke saken som med BM25 vektene er generelt små (ofte alt & # X3c; 1) mens docids er uunngåelig & # x3e; = 1 .
- inmemory backend:
- Den inmemory backend støtter ikke itera løpet metadata nøkler. Prøver å gjøre så vant til å gi en tom iterasjon, men har nå blitt fikset å kaste
- UnimplementedError (og denne begrensningen er nå dokumentert).
- bygge system:
- Fjern mye ubrukte header slutninger og noen ubrukt kode som skal gjøre bygge raskere og litt mindre.
- Fix å kompilere henhold --disable-backend-flint, --disable-backend-fjernkontroll, og --disable-backend-inmemory.
- Ikke fjern noen bygget kilder i & quot; gjøre rent & quot; selv under --make-vedlikehold-modus som som bryter bytte et tre bort fra vedlikehold-modus med: lage distclean; ./ configure
- configure: Aktiver flere GCC advarsler - & quot; -Woverloaded-virtuell & quot; for alle versjoner, & quot; -Wstrict-null-sentinel & quot; for 4.0+, & quot; -Wlogical-op -Wmissing erklæringer & quot; for 4.3+. Spesielt & quot; -Wmissing erklæringer & quot; fanget den consistency2 ikke ble som kjøres.
- Internt fikse de få stedene hvor vi passerer std :: string av verdi å passere ved konst referanse i stedet (bortsett fra når vi trenger en modifiserbar kopi uansett) som benchmarking viser at konst referansen er litt raskere og genererer mindre kode med GCC referanse telles std :: string implementering - med en ikke-referanse telles implementering, bør const referansen være mye raskere. (Billett # 140)
- dokumentasjon:
- Installer:. Vi tester ikke lenger regelmessig bygge med GCC 2.95.4 og vi heve minste GCC versjon som kreves til 3,1 for Xapian 1.1.x
- Dokument hva bestått maxitems = 0 til Spør :: get_mset () gjør.
- docs / queryparser.html: Legg eksempler på bruk av prefiks på en setning eller subexpression .
- Riktig Doxygen kommentarer for bruker metadata funksjoner:. Database :: get_metadata () kaste UnimplementedError men WritableDatabase :: set_metadata () kan
- Dokument at Database :: metadata_keys_begin () returnerer en slutt iterator hvis backend ikke støtter metadata.
- Hacking:. Oppdater listen over Debian / Ubuntu Pakkene som trengs for et utviklingsmiljø
- debug kode:
- Fix bygge med enable-debug.
- lagt noen flere påstander.
Hva er nytt i versjon 1.0.11:
- Denne utgivelsen løser flere bugs og legger til støtte til Omega for indeksering MS Office 2007-formater og XPS-filer.
Hva er nytt i versjon 1.0.10:
- Denne utgivelsen løser et mulig tilfelle av database korrupsjon hvis disken fylles opp mens du skriver ut endringer.
- låsefil for en flint databasen er nå opprettet ved hjelp av umask innstillingen.
- Tidligere var det ikke mulig å åpne en flint database for oppdatering hvis det var eid av en annen bruker, selv med tilstrekkelige tillatelser via & quot; gruppe & quot; eller & quot; andre & quot;.
- Skrive en OP_NEAR spørring med to ikke-term subqueries nå kaster UnimplementedError istedenfor AssertionError.
Hva er nytt i versjon 1.0.9:
- er Stavekontroll nå enda raskere. (En 15% hastighet opp ble målt.)
- To feil forårsaket av overflødig presisjon på x86 Linux har blitt fikset.
- Query :: MatchAll nå gir lik vekt til alle dokumenter.
- En krasj ved kompaktestave tabellen har blitt fikset.
- copydatabase eksempel kopierer nå bruker metadata også.
- Den omega CGI binære fanger nå og rapporter std :: unntak.
Kommentarer ikke funnet