Xapian egy nyílt forráskódú Probabilistic Információkereső könyvtár, a GPL licenc alatt. Xapian iss C-ben írt, kötéssel, hogy lehetővé váljon a más nyelvek (Perl, Java, Python, PHP, és a TCL jelenleg támogatott; Guile és C # kerülnek dolgozott).
Xapian úgy tervezték, hogy egy nagyon alkalmazkodó eszköztár lehetővé teszi a fejlesztők számára, hogy könnyen hozzá speciális indexelési és keresési szolgáltatások saját alkalmazásokat.
Ha követően a csomagolt kereső az Ön weboldalán, akkor vess egy pillantást Omega, amely egy olyan alkalmazás szállítunk épül Xapian. De ellentétben a legtöbb honlap kereső megoldásokat, Xapian sokoldalúsága lehetővé teszi, hogy kiterjessze Omega, a szükségletek kielégítése, mint nőnek.
Tulajdonságok :
- < li> Free Software / Open Source - GPL alatt licencelt.
- Könnyen hordozható - fut számos Linux, MacOS X, több más Unix és a Microsoft Windows.
- C-ben írt. Perl kötések állnak rendelkezésre a modul keresés :: Xapian a CPAN. Java JNI kötések szerepelnek a Xapian-kötések modul. Támogatjuk továbbá korty amely képes létrehozni kötés 13 nyelven. Jelenleg ezeket a Python, PHP 4-es, és a TCL dolgozik. Álnokság és C # is dolgoznak.
- Ranked valószínűségi kereső - fontos szót kap nagyobb súlyt, mint jelentéktelen szavakat, így a legfontosabb dokumentumok nagyobb valószínűséggel jönnek tetején a találati listában.
- relevanciája visszajelzést - adott egy vagy több dokumentumot, Xapian javasolnám a legfontosabb index szempontjából: növelni a lekérdezést, javaslom a kapcsolódó dokumentumokat, kategorizálni dokumentumok, stb.
- mondat és közelítő keresés - a felhasználók kereshetnek szavakat előforduló pontos kifejezést vagy egy meghatározott szavak száma, sem egy meghatározott sorrendben, vagy bármilyen sorrendben.
- Teljes körű strukturált logikai keresés szereplők (& quot; raktáron nem a piac & quot ;, stb). Az eredmények a logikai keresés rangsorolása a valószínűségi súlyokat. Boolean szűrők is alkalmazható, hogy korlátozzák a valószínűségi keresést.
- Támogatja fakadó keresési kifejezések (pl keresését & quot; foci & quot; lenne találni dokumentumokat amelyek beszélve & quot; Futball-& quot; vagy & quot; futballista & quot;). Ez segít megtalálni a fontos dokumentumokat, amelyek egyébként lehet kihagyni. Szótőkeresők jelenleg is a dán, holland, angol, finn, francia, német, olasz, norvég, portugál, orosz, spanyol, svéd.
- Támogatja adatbázis fájlokat & gt; 2GB - elengedhetetlen méretezés nagy dokumentum gyűjtemények.
- Platform független adatok formátumok - meg lehet építeni egy adatbázis egy gépen, és keressük meg a másik.
- lehetővé teszi az egyidejű frissítését és keresés. Új dokumentumok kereshetővé válnak azonnal.
- Csakúgy, mint a könyvtár, mi a kínálat számos kis példa programok, valamint egy nagyobb alkalmazás - egy indexelő és CGI-alapú alkalmazás úgynevezett omega:
- A indexer leszállított index HTML, PHP, PDF, PostScript, és a sima szöveg. Hozzátéve, támogatja a indexelés más formátum könnyű, ahol az átalakítás szűrők állnak rendelkezésre (pl Microsoft Word). Ez az indexelő segítségével működik a nyilvántartó rendszer, de mi is egy script, hogy a htdig web crawler kell akasztani, miáltal a távoli telephelyek kell keresni a Omega.
- Azt is index adatok bármely SQL vagy más RDBMS által támogatott Perl DBI modul. Ez magában foglalja a MySQL, PostgreSQL, SQLite, Sybase, MS SQL, LDAP, és ODBC.
- CGI kereső front-end mellékelt nagymértékben testreszabható megjelenés. Ez is testreszabható a kimeneti eredményeket XML vagy CSV, ami hasznos lehet, ha dinamikusan generáló oldalak (pl PHP vagy mod_perl), és csak azt a nyers keresési eredményeket, amelyek fel tudod dolgozni a saját oldal elrendezés kódot.
Mi az új ebben a kiadásban:
- Ez a változat rögzíti néhány kisebb hiba, és hozzáteszi, néhány új funkciót .
Mi az új verzióban 1.2.4:
- Ez a verzió hozzáteszi API összekapcsolására és tömörítés adatbázisok , sok tekintetben javítja Omega, magában foglalja az új korty alapú Perl kötések, és a javítás néhány memória szivárgás a Python.
Mi az új verzióban 1.0.22:
- Ez a verzió javít néhány kisebb hiba, és javítja a hordozhatóságot .
Mi az új verzióban 1.0.21:
- Xapian-core API:
- Xapian :: Stem most felismeri & quot; nb & quot; és a & quot; nn & quot; további kódokat a norvég stemmer.
- Xapian :: QueryParser már helyesen értelmezi a wildcarded távon között két másik fogalmat (ticket # 484).
- mérkőzések:
- OP_OR tudott ugrani egy megfelelő dokumentumot, ha szuvas a OP_AND vagy OP_AND_MAYBE meccs közben bizonyos esetekben. Javítások jegyet # 476.
- OP_XOR nem-levél subqueries is kihagyja illő dokumentumok bizonyos esetekben, és OP_XOR három vagy több al-lekérdezések térhettek helytelen súlyokat. Javítások jegyet # 475.
- OP_OR most sokkal hatékonyabb, ha a allekérdezés potenciálisan drága (pl OP_VALUE_RANGE, OP_NEAR, OP_PHRASE, PostingSource). A 10-szeres sebességű követés OP_VALUE_RANGE figyeltek meg.
- Építsd rendszer:
- Install fájlokat, hogy Xapian könnyebben kezelhető CGyõzõdjön.
- hordozhatóság:
- Az x86 processzorok, Xapian most már alapértelmezés szerint a SSE2 FP utasításokat. Ezzel elkerülhető kérdések felesleges pontosságú, és ez egy kicsit gyorsabb is. Ha szükség van, hogy támogassa processzorok nélkül SSE2 (ez azt jelenti, pre-Pentium 4 Intel), majd állítsuk be a --disable-SSE. (Jegyet # 387)
Mi az új verzióban 1.0.18:
- QueryParser:
- jobb támogatása nyelvek, mint a burmai használó Unicode bezáró jel és ötvözi távolság mark karakter.
- Flint backend:
- Ha a dokumentumok frissítésével, nem frissíti kiküldetés bejegyzéseket, amelyek nem változtak (ticket # 250).
- Fix zár kódot dolgozni, ha stdin és / vagy stdout lezárták.
Mi az új verzióban 1.0.13:
- API:
- Xapian :: dokumentum már nem mindig tárolja az üres értékek kifejezetten. Ez nem volt szándékos magatartás, és ez hogyan ügyet kezelni nem volt dokumentálva. A módosított viselkedés összhangban van, hogyan felhasználói metaadatok kezelése. Ez a változás nem figyelhető meg a Document :: get_value (), de lehet észre, amikor ismételve a Document :: values_begin () segítségével Document :: values_count (), vagy megpróbálja törölni az értéket a Document :: remove_value ().
- testsuite:
- Fix TestCase scaleweight4 nem meghiúsulását x86 amikor összeállítják a -O0. A probléma az volt a TestCase kódot, és okozta túlzott precizitás köztes FP értékeket.
- Testcases, amely ellenőrzi, hogy a műveleteket a várt O (...) viselkedése nem ellenőrzi CPU helyett most falióra időben a legtöbb platformon, amely megszünteti esetenkénti kudarcok miatt betölteni tüskék más eljárások.
- (ticket # 308)
- Fix teszt hibák miatt SKIP_TEST_FOR_BACKEND (& quot; inmemory & quot;) Nem kihagyom, amikor kellett miatt összehasonlítása char húrok == (a törzsön a visszatérési érték tesztelt std :: karakterlánc helyett const char *).
- Javítani teszt lefedettség több sarokban esetben.
- Fix TestCase consistency2, hogy ténylegesen futtatható (szerencsére ez megy).
- A generált testcases, hívja get_description () az alapértelmezett épített tárgy minden osztályban, hogy megbizonyosodjon arról, hogy működik (és nem próbál feloldási NULL, vagy nem tett kijelentéseket, stb). Minden éppen ellenőrzött osztályok finom - ez a jövőben ne legyenek regresszió, vagy az ilyen problémák az új osztályok.
- A teszt lefedettség kiépítése, a & quot; - lefedettség & quot; ahelyett, & quot; -fprofile-ívek -ftest-lefedettség & quot;.
- A teszt hám most a inmemory backend megjelölve támogatja a felhasználó által megadott metaadat (eltekintve iteráció alatt metaadatok segítségével).
- matcher:
- Ha egy lekérdezés tartalmazza a MatchAll allekérdezés, ellenőrizze, hogy az ellenőrzés előtt az egyéb feltételek, hogy a hurok, amely ellenőrzi, hogy hány szempontjából mérkőzés kiléphet a korai, ha az összes mérkőzést.
- Ha egy OR vagy ANY_MAYBE elhalt egy ÉS, amit gondosan kicserélni a gyerekeket a maximális hatékonyság érdekében, de a feltétel fordított volt így valójában ront a helyzeten. Ezt észrevette mert így ugyanazt a lekérdezést gyorsabban fut, amikor több eredmény arra kérték, a!
- Csak építeni a termname hogy termfreq és súly térképünkre subdatabase helyett újjáépíti mindegyik. Szintén nem másolja ezt a térképet, hogy vissza. Ez felgyorsítja keresések egy kicsit, főleg azok, melyek több adatbázis.
- Ha a submatcher meghibásodik, de ErrorHandler azt mondja, hogy továbbra nélküle, csak használja a NULL pointer állni, nem pedig lefoglal egy speciális üres hely tulajdonosa objektumot.
- Vegye AndPostList, javára MultiAndPostList. AndPostList-t csak akkor kell használni, mint egy bomlási terméke (a AndMaybePostList és OrPostList), és úgy tűnik, nem lehet minden gyorsabb. Eltávolítása csökkenti a CPU cache nyomás, és kevésbé kódot fenntartani.
- Hívás check () helyett skip_to () az opcionális ága AND_MAYBE.
- Flint backend:
- Hibajavítás a TermIterator :: skip_to () több mint metaadatok segítségével.
- távoli backend:
- Fix Xapian-tcpsrv --interface lehetőséget, hogy működik MacOS X (ticket # 373).
- Fix elírás, ami miatt minket, hogy visszatérjen a docid helyett az össztömeget a dokumentum egy távoli mérkőzés térhettek! Ez vezethetett volna rossz eredményt, ha keres több adatbázis a távoli backend, de valószínűleg általában nem számít, mint a BM25 a súlyok általában kis (gyakran az összes & # X3c; 1), míg docids elkerülhetetlenül & # x3e; = 1 .
- inmemory backend:
- A inmemory backend nem támogatja iterálás metaadatok segítségével. Próbál erre használni, hogy egy üres utazgatás, de most már fix, hogy dobja
- UnimplementedError (és ez a korlátozás már dokumentálták).
- build rendszer:
- távolítsa el a sok fel nem használt header zárványok és néhány nem használt kód ami kell, hogy a build gyorsabb és valamivel kisebb.
- Fix fordítható --disable-backend-Flint, --disable-backend-remote, és --disable-backend-inmemory.
- Ne távolítsa el a beépített forrásokból & quot; make clean & quot; még --make-fenntartó-módot, amely megtöri váltás egy fa távol a fenntartói mód: make distclean; ./ configure
- configure: Enable több GCC figyelmeztetések - & quot; -Woverloaded-virtuális & quot; az összes verzió, & quot; -Wstrict-null-sentinel & quot; A 4.0+, & quot; -Wlogical-op -Wmissing-nyilatkozatok & quot; A 4.3, illetve újabb. Nevezetesen & quot; -Wmissing-nyilatkozatok & quot; fogott, hogy consistency2 nem fut.
- Belsőleg erősít a kevés esetben, amikor átadjuk std :: string értéket átadni a const hivatkozás helyett (kivéve, ha szükségünk van a módosítható copy egyébként), az összehasonlítási azt mutatja, hogy const referencia valamivel gyorsabb és kevesebb, kód GCC referencia számítani std :: String végrehajtás - a nem referencia számít végrehajtása, const referencia kell sokkal gyorsabb. (Jegyet # 140)
- dokumentációt:
- INSTALL: Már nem rendszeresen teszteli építeni a GCC 2.95.4 és mi emelése minimum GCC verziót kell 3.1 Xapian 1.1.x.
- Dokumentum mi elhaladó maxitems = 0 Kérdezd :: get_mset () nem.
- docs / queryparser.html: Add példák segítségével prefix egy mondatot vagy alkifejezésből.
- A helyes doxygen hozzászólás felhasználói metaadatok funkciók: Database :: get_metadata () dobja UnimplementedError de WritableDatabase :: set_metadata (is).
- Document hogy Database :: metadata_keys_begin () függvény véget bejáró ha a backend nem támogatja a metaadatok.
- Hacking: listájának frissítése Debian / Ubuntu csomag szükséges a fejlesztési környezetbe.
- hibakereső kód:
- Fix építeni --enable-debug.
- Added néhány állításait.
Mi az új verzióban 1.0.11:
- Ez a kiadás javít néhány hibát, és támogatja az Omega indexelő MS Office 2007 formátumok és XPS fájlok.
Mi az új verzióban 1.0.10:
- Ez a kiadás javít a lehető esetén adatbázis korrupció, ha A lemez megtelik írásakor a változásokat.
- A LockFile egy Flint adatbázis most létre a umaskot beállítást.
- Korábban nem lehetett megnyitni a Flint adatbázis frissítést, ha azt egy másik felhasználóé, még megfelelő engedélyekkel keresztül & quot; csoport & quot; vagy & quot; egyéb & quot;.
- alkotó egy OP_NEAR query két nem távú subqueries már veti UnimplementedError helyett AssertionError.
Mi az új a 1.0.9 verzió:
- Spelling korrekció most még gyorsabb. (A 15% sebesség volt mérhető.)
- két hibát okozott felesleges precizitással x86 Linux javítva lett.
- Query :: MatchAll immár egyenlő súlyokat az összes dokumentumot.
- A baleset tömörítése közben a helyesírási asztalra került.
- A copydatabase például most példányban felhasználói metaadatok is.
- Az omega CGI bináris most fogja és jelentéseket std :: kivétel.
Hozzászólás nem található