Xapian е Open Source вероятностен извличане на информация библиотека, разпространявана под GPL. Xapian МКС написан на C, с автомати, за да се позволи използването на други езици (Perl, Java, Python, PHP, и TCL момента се поддържат; Guile и C # са работили по).
Xapian е проектиран да бъде по-силно адаптивен инструментариум, за да позволи на разработчиците лесно да се добавят напреднали индексиране и търсене устройства за своите собствени приложения.
Ако сте след пакетиран търсачката за вашия уеб сайт, вие трябва да погледнете на Omega, която е приложение, ние доставяме изградена върху Xapian. Но за разлика от повечето други решения за търсене в сайтовете, многофункционалност Xapian ви позволява да се разшири Omega да отговарят на вашите нужди, тъй като те растат
<силни> Характеристики :.
- < Li> Free Software / Open Source -. разпространява под GPL
- лесно преносим - работи на много Linux, MacOS X, много други платформи Unix, и Microsoft Windows .
- Написани на C. Perl автомати са на разположение в модул за търсене :: Xapian на CPAN. Java JNI автомати са включени в модула за xapian-автомати. Подкрепяме също SWIG която може да генерира автомати за 13 езика. В момента тези за Python, PHP4, и TCL работим. Guile и C # се работи.
- класираха probablistic търсенето - важните думи получат по-голяма тежест, отколкото маловажни думи, така че най-важните документи, е по-вероятно да дойде близо до върха на списъка с резултати .
- Значение за обратна връзка - има предвид един или повече документи, Xapian може да предложи най-подходящите термини индексни да разширите въпрос, предлагам, свързани документи, категоризирани от документи и др .
- Фраза и търсенето на близост -. Потребителите могат да търсят думи, настъпили в точната фраза или в рамките на определен брой думи, или в определен ред, или в произволен ред
- Пълен набор от структурирани булеви оператори за търсене (& quot; фондова а не на пазара & quot ;, и т.н.). Резултатите от булев търсенето са подредени от probablistic тегла. Булеви филтри могат да бъдат приложени, за да се ограничи вероятностен търсене.
- Поддържа произтичащи от думи за търсене (например търсене на & quot; футбол & quot; ще съвпадне документи, които споменават & quot; топки & quot; или & quot; футболист & quot;). Това помага да намерите съответните документи, които иначе биха могли да бъдат пропуснати. Stemmers момента са включени за датски, холандски, английски, фински, френски, немски, италиански, норвежки, португалски, руски, испански и шведски.
- Поддържа база данни, файлове и GT; 2GB -. От съществено значение за мащабиране на големи колекции на документи
- платформено независим формати за данни -. може да се изгради база данни на една машина и я търсят в друга
- позволява едновременна актуализация и търсенето. Нови документи стават търсене веднага.
- индексиращия доставен може да индексира HTML, PHP, PDF, PostScript, и обикновен текст. Добавяне на подкрепа за индексиране други формати е лесно, когато филтри са налице превърнати (напр Microsoft Word). Това индексиращия работи с помощта на системата за подаване, но ние също така предоставя скрипт, за да се даде възможност на htdig робот, за да се закачи в, което позволява отдалечени обекти да бъдат претърсвани използване Omega.
- Можете също данни на индекса от всеки SQL или други RDBMS подкрепена от модула за Perl DBI. Това включва MySQL, PostgreSQL, SQLite, Sybase, MS SQL, LDAP, и ODBC.
- търсене CGI предния край снабден с много адаптивни външен вид. Това също може да бъде персонализиран за извеждане на резултатите в XML или CSV, което е полезно, ако са динамично генериране на страници (например с PHP или mod_perl) и просто искам суровини резултатите от търсенето, които можете да обработвате в собствения си оформлението на страницата код.
<Ли клас = "bbli"> Както и библиотеката, ние доставяме на редица малки програми, например, и по-голяма заявка - индексиране и CGI-базирано приложение, наречено омега:
Какво ново в тази версия:
- Тази версия поправя дребни бъгове и добавя няколко нови функции .
Какво ново във версия 1.2.4:
- Тази версия добавя API за сливане и уплътняване бази данни , прави много подобрения в Omega, включва нови глътка базирани Perl автомати, и поправя някои течове памет в Python автомати.
Какво ново във версия 1.0.22:
- Тази версия определя няколко незначителни бъгове и подобрява преносимостта .
Какво ново във версия 1.0.21:
- Xapian-ядрен API:
- Xapian :: Стволови вече разпознава & quot; NB & quot; и & quot; NN & quot; като допълнителни кодове за норвежката Stemmer.
- Xapian :: QueryParser вече правилно прави разбор на wildcarded срок между две други условия (билет # 484).
- Matcher:
- OP_OR може да пропуснете едно съвпадение на документ, ако изгнили да OP_AND или OP_AND_MAYBE по време на мача в някои случаи. Поправя билет # 476.
- OP_XOR с не-листни подзаявки може да пропуснете съвпадение документи в някои случаи, и OP_XOR на три или повече под-заявки може да се върне неверни теглилки. Поправя билет # 475.
- OP_OR сега е по-ефективно, ако един подзаявка е потенциално скъпи (например OP_VALUE_RANGE, OP_NEAR, OP_PHRASE, PostingSource). Наблюдавано е 10-кратно повишаване на бързодействието с OP_VALUE_RANGE.
- Build System:
- Инсталиране на файлове, за да Xapian-лесен за използване с cmake.
- Преносимост:
- На x86 процесори, Xapian сега подразбиране използване SSE2 FP инструкции. Така се избягват проблеми с излишък прецизност и го малко по-бързо също. Ако трябва да се поддържа процесори без SSE2 (това означава предварително Pentium4 за Intel), след това изберете с --disable-SSE. (Билет # 387)
Какво ново във версия 1.0.18:
- QueryParser:
- Подобряване на подкрепата за езици като Бирма, които използват Unicode ограждащи марка и комбиниране на знаци отстояние марка.
- Flint бекенд:
- При актуализиране на документи, не се актуализира публикуване текстове, които не са се променили (билет # 250).
- Fix код за заключване, за да работи, ако стандартния вход и / или стандартния изход са били затворени.
Какво ново във версия 1.0.13:
- API:
- Xapian :: Документ вече не всякога съхранява изрично празни стойности. Това не беше умишлено поведение, и как се борави този случай не е документирано. Измененият поведение е в съответствие с това как се борави с потребителското метаданни. Тази промяна не е видим с Document :: get_value (), но може да се забележи, когато итерации с Document :: values_begin (), като се използва Document :: values_count (), или опит за изтриване на стойността с Document :: remove_value ().
- testsuite:
- Fix TestCase scaleweight4 не да се провали на x86 когато компилиран с -O0. Проблемът е в кода на TestCase, и се причинява от излишък прецизност при междинни стойности FP.
- Testcases които проверяват, че операциите имат очаквания O (...) поведение не Проверка на времето CPU вместо време wallclock на повечето платформи, които трябва да се премахнат случайни повреди поради натоварване шипове от други процеси.
- (билет # 308)
- неуспехи тестови Fix поради SKIP_TEST_FOR_BACKEND (& quot; inmemory & quot;) не прескочите, когато е трябвало да се дължи на сравняването Чар струни с == (на багажника върнатата стойност се изпитва, е STD :: низ вместо Конст Чар *)
- Подобряване на изпитването покритие в няколко случая ъгъл.
- Fix TestCase consistency2 действително да се работи (за щастие тя преминава).
- В генерираните testcases, обадете get_description () по подразбиране изграден обект, на всеки клас, за да се уверите, че работи (и не се опитват да сочен NULL, или не някои твърдението, и т.н.). Всички в момента проверяват класове са добре - това е, за да се избегнат бъдещи регресии или такива проблеми с нови класове .
- В покритие тест изграждат, & quot; - покритие & quot; вместо & quot; -fprofile дъги -ftest-покритие & quot;.
- ремък за изпитване вече има inmemory гръб подаден сигнал, че подкрепата потребителя, посочени метаданни (с изключение на повторение над метаданни ключове).
- пасването:
- Ако търсене съдържа MatchAll подзаявка, проверете за това преди да се консултирате с други термини, така че примката, която проверява колко термини мач може да излезе рано, ако целия мач.
- Когато OR или ANY_MAYBE разложен до И, ние внимателно смяна на децата за максимална ефективност, но условието е обърната така че ние бяхме в действителност прави нещата по-зле. Това бе забелязал, защото това е в резултат на една и съща заявка работи по-бързо, когато повече резултати бяха поискали!
- Само построи termname да termfreq и карта на тегло за първи subdatabase вместо това възстановяването за всяка една. Също така не копирайте тази карта, за да го върне. Това би трябвало да ускори търсения малко, особено тези над няколко бази данни.
- Ако submatcher не успее, но ErrorHandler ни казва да продължи без него, ние просто използвайте NULL указател да престои в, а не за разпределяне на специални сляпо място титуляр обект.
- Отстрани AndPostList, в полза на MultiAndPostList. AndPostList се използва само като гниене продукт (от AndMaybePostList и OrPostList), и не изглежда да е по-бързо. Премахване намалява CPU кеш налягане, и е по-малко код, за да се поддържа.
- проверка Call () вместо skip_to () по избор клон на AND_MAYBE.
- кремък бекенд:
- Fix бъг в TermIterator :: skip_to () над метаданни ключове.
- дистанционно бекенд:
- Fix xapian-tcpsrv опция --interface да работят на MacOS X (билет # 373).
- Fix правописна грешка, която ни накара да се върнете на docid вместо максималното тегло на документ от отдалечено мач може да се върне! Това би могло да доведе до грешни резултати при търсене на няколко бази данни с отдалечената гръб, но вероятно обикновено нямаше значение, както с BM25 теглата обикновено са малки (често всичко & # x3c; 1), докато docids са неизбежно & # x3e; = 1 .
- inmemory бекенд:
- The inmemory гръб не поддържа итерации над метаданни ключове. Опитвайки се да го направят, използвани за даване на празен итерация, но сега е фиксиран, за да хвърлят
- UnimplementedError (и това ограничение вече е документирано).
- изгради система:
- Отстрани много неизползвани колекторни включвания и някои неизползван код, който трябва да се направи за изграждане на по-бързо и малко по-малка.
- Fix за съставяне на по---disable бекенд-кремък, --disable-бекенд-дистанционно, и --disable-бекенд-inmemory.
- Не се отстранят всички построени източници в & quot; направи чиста & quot; дори и при --make поддържащата-режим, както който разгражда превключване дърво далеч от поддържащия режим с: направи distclean; ./ Configure
- Configure: Активиране повече предупреждения ССЗ - & quot; -Woverloaded-виртуална & quot; за всички версии, & quot; -Wstrict-нула-Sentinel & quot; за 4.0+, & quot; -Wmissing-декларации -Wlogical-оп & quot; за 4.3+. За отбелязване & quot; -Wmissing-декларации & quot; хванат, че consistency2 не беше той да работи.
- Вътрешно, определи от малкото места, където можем да преминат STD :: низ от стойността да премине от Конст вместо препратки (освен когато имаме нужда от изменяема копие или иначе) като сравнителен анализ показва, че Конст препратка е малко по-бързо и генерира по-малко код с позоваване ССПЗ Брой изпълнение STD :: низ - с изпълнението на нееталонен брои, Конст позоваване трябва да бъде много по-бързо. (Билет # 140)
- документация:
- инсталирате:. Ние вече не се изследва редовно се изгради с GCC 2.95.4 и ние сме повишаване на минималната GCC версия изисква до 3.1 за Xapian 1.1.x
- Document какви пасове maxitems = 0 за запитване :: get_mset () прави.
- Документи / queryparser.html: добави примери за използване на префикс за една фраза или subexpression .
- Коректни коментари Doxygen за функции потребителското метаданни:. Database :: get_metadata () хвърля UnimplementedError но WritableDatabase :: set_metadata () може да
- Document че Database :: metadata_keys_begin () връща край итератор ако гръб не поддържа метаданни.
- хакерство:. Актуализиране на списъка на пакети Debian / Ubuntu, необходими за развитие на околната среда
- отстраняване на грешки код:
- Fix изгради с --enable-отстраняване на грешки.
- Добавена още няколко твърдения.
Какво ново във версия 1.0.11:
- Тази версия поправя няколко бъгове и добавя поддръжка за Omega за индексиране на MS Office 2007 формати и XPS файлове.
Какво ново във версия 1.0.10:
- Тази версия поправя възможен случай на корупция на база данни, ако дискът се запълни докато пишете на промени.
- The lockfile за база данни кремък сега е създаден с помощта на настройката за Umask.
- Преди това не беше възможно да се отвори базата данни кремък за актуализация, ако тя е била собственост на друг потребител, дори и с достатъчно права чрез & quot; група & quot; или & quot; други & quot;.
- съставяне на ново запитване OP_NEAR с две не-дългосрочни подзаявки сега хвърля UnimplementedError вместо AssertionError.
Какво ново във версия 1.0.9:
- корекция на правописа сега е още по-бързо. (А 15% скорост се измерва.)
- Две грешки, причинени от излишък прецизност на x86 Linux са фиксирани.
- Query :: MatchAll сега дава равни тежести за всички документи.
- A катастрофа, докато уплътняване таблицата на правописа е фиксиран.
- Примерът copydatabase сега копия потребителското метаданни също.
- омега CGI двоичен The сега хваща и доклади STD :: изключение.
Коментари не е намерена