Angielskifrancuskihiszpański

Ulubiona usługa OnWorks

SWISH-LIBRARY - Online w chmurze

Uruchom SWISH-LIBRARY u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie SWISH-LIBRARY, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


SWISH-LIBRARY - Interfejs do biblioteki Swish-e C

INFORMACJE OGÓLNE


Biblioteka C w interfejsie do kodu wyszukiwania Swish-e. Zapewnia sposób na osadzenie
Swish-e do swoich aplikacji. Ten interfejs API jest oparty na Swish-e w wersji 2.3.

Uwaga: Jest to NOWY interfejs API od wersji 2.3 Swish-e. Zmienił się interfejs w języku C
podobnie jak interfejs perla do Swish-e. Nowy interfejs Perla to moduł SWISH::API i
jest dołączony do dystrybucji Swish-e. Stary moduł SWISHE perl został przepisany
do pracy z nowym API. Moduł perl SWISHE nie jest już dołączony do Swish-e
dystrybucja, ale można ją pobrać ze strony internetowej Swish-e.

Zaletą biblioteki jest to, że pliki indeksowe lub pliki można otworzyć jeden raz i
wiele zapytań wykonanych w otwartym indeksie. Oszczędza to czas uruchamiania wymagany do rozwidlenia i uruchomienia
binarny swish-e i kosztowny czas otwierania pliku indeksu. Niektóre testy
wykazały trzykrotny wzrost prędkości.

Minusem jest to, że Twój program zawiera teraz więcej kodu i danych (tabele indeksów mogą:
zużywa dużo pamięci), a jeśli w swish wystąpi krytyczny błąd, spowoduje to spadek
program. Są to rzeczy, o których należy pomyśleć, zwłaszcza jeśli osadzisz swish na serwerze sieciowym
takich jak Apache, gdzie istnieje wiele procesów obsługujących żądania.

Najlepszym sposobem na poznanie biblioteki jest przejrzenie dwóch plików dołączonych do Swish-e
dystrybucja korzystająca z biblioteki.

src/libtest.c
Ten plik zawiera podstawowe informacje o łączeniu programu w języku C z biblioteką Swish-e. Nie
wszystkie dostępne funkcje są używane w tym przykładzie, ale powinno to dać ci dobrą
omówienie budowania programu w C za pomocą swish-e.

Aby zbudować i uruchomić libtest chdir do katalogu src i uruchomić polecenia:

$ zrobić libtest
$ ./libtest [opcjonalna nazwa pliku indeksu]

Zostaniesz poproszony o wpisanie wyszukiwanych słów. Domyślnym indeksem używanym jest indeks.swish-e.
Można to zmienić, umieszczając listę plików indeksowych w łańcuchu chronionym cudzysłowami.

$ ./libtest 'indeks1 indeks2 indeks3'

perl/API.xs
Kurs API.xs plik jest interfejsem Perla "xsub" do biblioteki C i jest częścią
SWISH::API moduł Perl. To jest zorientowany obiektowo interfejs do biblioteki Swish-e
i pokazuje, w jaki sposób różne wyszukiwane „obiekty” są tworzone przez wywołania C i jak one
są niszczone, gdy nie są już potrzebne.

Instalacja dotychczasowy Swish-e biblioteka


Biblioteka Swish-e jest instalowana po uruchomieniu polecenia „make install” podczas budowania Swish-e. Nie
wymagane są dodatkowe etapy instalacji.

Biblioteka składa się z pliku nagłówkowego „swish-eh” i biblioteki „libswish-e.*”, które mogą
być biblioteką statyczną lub współdzieloną, w zależności od platformy.

Biblioteka Zakładka Podgląd


Kiedy po raz pierwszy dołączasz do pliku indeksu (lub plików indeksu), zwracany jest "swish handle".
Z uchwytu tworzysz jeden lub więcej „obiektów wyszukiwania”, które przechowują parametry do
zapytanie indeksu, takie jak ciąg zapytania, porządek sortowania, ogranicznik frazy wyszukiwania, limit
parametry i bity struktury HTML. „Obiekt” jest tak naprawdę tylko wskaźnikiem do C
struktura, ale warto myśleć o niej jako o obiekcie, który zawiera dane i funkcjonalność
powiązany z tym.

Obiekt wyszukiwania służy do wyszukiwania indeksu. Zapytanie zwraca „obiekt wyników”. ten
obiekt wyników zawiera liczbę trafień, przeanalizowane zapytanie na indeks i zestaw wyników.
Obiekt wyników śledzi bieżącą pozycję w zestawie wyników. Możesz "szukać"
do określonego rekordu w zestawie wyników (przydatne do wyświetlania strony wyników).

Wreszcie obiekt wynikowy reprezentuje pojedynczy wynik z listy wyników. Obiekt wynikowy
zapewnia dostęp do właściwości wyniku (takich jak nazwa pliku, pozycja itp.).

Oprócz wyników dostępne są funkcje umożliwiające dostęp do przechowywanych wartości nagłówka
w pliku indeksu funkcje sprawdzania i zgłaszania błędów oraz kilka funkcji użytkowych.

Dostępny Funkcje


Poniżej znajduje się lista dostępnych funkcji zawartych w API języka Swish-e C.

Te funkcje (i typedefy) są zdefiniowane w swish-eh plik nagłówkowy. Wspólne
użyte obiekty (np. konstrukcje) to:

SW_HANDLE - swish uchwyt, który kojarzy się z plikiem indeksu
SW_SEARCH - wyszukaj "obiekt" zawierający parametry wyszukiwania
SW_RESULTS - "obiekt" wyników, który zawiera zestaw wyników
SW_RESULT - pojedynczy wynik używany do uzyskania dostępu do właściwości wyniku
SW_FUZZYWORD - używany do konwersji słów rozmytych (pochodzenie)

Badawczy

SW_HANDLE SwishInit(char *IndexFiles);
Ta funkcja otwiera i odczytuje informacje nagłówkowe plików indeksowych zawartych w
ciąg IndexFiles. Łańcuch powinien zawierać rozdzieloną spacjami listę plików indeksowych.

SW_HANDLE mój uchwyt;
mójuchwyt = SwishInit("plik1.idx");

Zazwyczaj otwierasz uchwyt na początku swojego programu i używasz go do tworzenia
wiele zapytań w indeksie.

Ta funkcja zawsze zwróci swish uchwyt. Musisz sprawdzić, czy nie ma błędów, i dalej
zwolnij pamięć używaną przez uchwyt lub przerwij.

Oto przykład przerwania:

SW_HANDLE swish_handle;
swish_handle = SwishInit("plik1.idx plik2.idx");
if (SwishError( swish_handle ) )
SwishAbortLastError(swish_handle);

A oto przykład wyłapania błędu:

SW_HANDLE swish_handle;
swish_handle = SwishInit("plik1.idx plik2.idx");
if (SwishError( swish_handle ) )
{
printf("Nie udało się połączyć ze swish. %s\n", SwishErrorString( swish_handle ) );
SwishClose( swish_handle ); /* zwolnij używaną pamięć */
0 wrócić;
}

Możesz mieć więcej niż jeden uchwyt na raz.

Swish-e nie poinformuje Cię, czy plik indeksu zmieni się na dysku (np. po
ponownej indeksacji). W trwałym środowisku (np. mod_perl) program wywołujący powinien:
sprawdź, czy plik indeksu zmienił się na dysku. Typowym sposobem na to jest:
zapisz numer i-węzła przed otwarciem pliku(ów) indeksu, a następnie podaj nazwę pliku
co jakiś czas i ponownie otwieraj pliki indeksu, jeśli zmieni się numer i-węzła.

void SwishClose (uchwyt SW_HANDLE);
Ta funkcja zamyka i zwalnia pamięć uchwytu Swish. Każdy swish uchwyt
powinien zostać zwolniony po zakończeniu przeszukiwania indeksu. Niezamknięcie klamki spowoduje
spowodować wyciek pamięci.

SW_SEARCH New_Search_Object(SW_HANDLE uchwyt, const char *zapytanie);
Zwraca nowy szukany „obiekt”. Obiekt wyszukiwania zawiera parametry używane do
przeszukiwanie indeksu. Pojedynczy obiekt wyszukiwania może służyć do wyszukiwania wielu indeksów
czasy. Dostępne ustawienia wymienione poniżej są „lepkie”, ponieważ pozostają włączone
obiekt wyszukiwania aż do zmiany.

int SwishGetStructure(SW_SEARCH srch);
Zwraca flagę „struktury” przekazanego obiektu wyszukiwania lub 0, jeśli obiekt wyszukiwania jest
ZERO.

void SwishPhraseDelimiter( SW_SEARCH srch, separator znaków );
Ustawia znak ogranicznika frazy. Wartość domyślna to podwójne cudzysłowy.

char SwishGetPhraseDelimiter(SW_SEARCH srch);
Zwraca znak ogranicznika frazy użyty w obiekcie wyszukiwania lub 0, jeśli wyszukiwanie
obiekt ma wartość NULL.

void SwishSetStructure( SW_SEARCH srch, int struktura );
Ustawia flagę "struktura" w obiekcie wyszukiwania. Flaga struktury służy do ograniczania
przeszukuje części plików HTML (takie jak tytuł lub nagłówki). Wartość domyślna to
nie ograniczać. Zapewnia to funkcjonalność przełącznika wiersza poleceń -H.

void SwishPhraseDelimiter( SW_SEARCH srch, separator znaków );
Ustawia znak ogranicznika frazy. Wartość domyślna to podwójne cudzysłowy.

void SwishSetSort( SW_SEARCH srch, char *sort );
Ustawia porządek sortowania wyników. To jest to samo, co przełącznik -s używany z
swish-e binarny.

void SwishSetQuery( SW_SEARCH srch, char *query );
Ustawia ciąg zapytania w obiekcie wyszukiwania. Zwykle nie jest to potrzebne, ponieważ może:
ustawić podczas tworzenia obiektu wyszukiwania lub podczas wykonywania zapytania.

void SwishSetSearchLimit( SW_SEARCH srch, char *nazwa właściwości, char *low, char *hi);
Ustawia parametry limitu wyszukiwania. Zapewnia taką samą funkcjonalność jak -L
przełącznik wiersza poleceń. Możesz określić zakres wartości właściwości, które będą wyszukiwane
musi być w środku. Możesz zadzwonić SwishSetLimit wyszukiwania() tylko raz dla każdej nieruchomości
(ale można ustawić limity dla więcej niż jednej właściwości na raz).

W przeciwieństwie do innych ustawień w obiekcie wyszukiwania, po uruchomieniu zapytania w wyszukiwaniu
obiekt, który musisz zadzwonić SwishReset Limit wyszukiwania() aby zmienić lub wyczyścić parametry limitów.

void SwishResetSearchLimit(SW_SEARCH srch);
Resetuje limity ustawione dla obiektu wyszukiwania ustawione przez SwishSetLimit wyszukiwania().

void Free_Search_Object(SW_SEARCH srch);
Zwalnia obiekt wyszukiwania. Musi to zostać wywołane po zakończeniu z obiektem wyszukiwania.
Ogólnie rzecz biorąc, możesz ponownie użyć obiektu wyszukiwania dla wielu zapytań, więc zazwyczaj byś
zadzwoń do tego tuż przed zadzwonieniem SwishZamknij().

Możesz zwolnić obiekt wyszukiwania przed zwolnieniem i wygenerowaniem obiektów wyników.

SW_RESULTS SwishExecute( wyszukiwanie SW_SEARCH, const char *zapytanie);
Przeszukuje indeks lub indeksy na podstawie parametrów w obiekcie wyszukiwania. Zwraca a
obiekt wyników. Poniżej znajdują się funkcje umożliwiające dostęp do danych przechowywanych w wynikach
obiekt.

Po zadzwonieniu zawsze powinieneś sprawdzić błędy SwishWykonaj().

SW_RESULTS SwishQuery(SW_HANDLE, const char *słowa);
Jest to funkcja skrótu, która omija tworzenie obiektu wyszukiwania (właściwie
omija potrzebę tworzenia i zwalniania obiektu wyszukiwania). Pozwala to tylko na przekazanie
ciąg zapytania; nie można ustawić innych parametrów wyszukiwania. Wyniki są sortowane według rangi.

Po zadzwonieniu zawsze powinieneś sprawdzić błędy SwishQuery().

Czytający Efekt

int SwishHits( SW_RESULTS wyniki );
Zwraca liczbę wyników w obiekcie wyników.

SWISH_HEADER_VALUE SwishParsedWords( SW_RESULTS, const char *nazwa_indeksu );
Zwraca tokenizowane zapytanie. Słowa są podzielone według WordCharacters, a stopwords są
REMOVED. Przeanalizowane słowa są przydatne do wyróżniania wyszukiwanych haseł w Twoim programie.

„Nazwa_indeksu” to nazwa indeksu podanego w SwishInit() wywołanie funkcji.

Zwraca unię SWISH_HEADER_VALUE typu SWISH_LIST, która jest znakiem **. Widzieć
src/libtest.c dla przykładu dostępu do ciągów z tej listy, ale ogólnie ty
może rzucić to na (znak **).

SWISH_HEADER_VALUE SwishRemovedStopwords( SW_RESULTS, const char *index_name );
Zwraca listę odrzucanych słów usuniętych z zapytania wejściowego.

Zwraca unię SWISH_HEADER_VALUE typu SWISH_LIST, która jest znakiem **. Widzieć
src/libtest.c dla przykładu dostępu do ciągów z tej listy, ale ogólnie ty
może rzucić to na (znak **).

int SwishSeekResult( SW_RESULTS, int pozycja );
Ustawia bieżącą pozycję wyszukiwania na liście wyników, przy czym pozycja zero to
pierwszy rekord (w przeciwieństwie do -b, gdzie jeden jest pierwszym wynikiem).

Zwraca pozycję lub liczbę ujemną w przypadku błędu.

SW_RESULT SwishNextResult( SW_RESULTS);
Zwraca następny wynik lub NULL, jeśli nie jest dostępnych więcej wyników.

Zwrócony obiekt wynikowy nie musi być zwalniany po użyciu (w przeciwieństwie do swish
uchwyt, obiekt wyszukiwania i obiekt wyników).

const char *SwishResultPropertyStr(SW_RESULT, char *nazwa właściwości);
Ta funkcja jest szczególnie przydatna do testowania, ponieważ zwraca nieparzyste wyniki w przypadku błędów.

Przerywa, jeśli wywołane z obiektem SW_RESULT NULL

Zwraca wartość ciągu określonej właściwości.

Zwraca pusty ciąg „” jeśli bieżący wynik nie ma określonej właściwości
przydzielony.

Zwraca ciąg "(null)" na niepoprawną nazwę właściwości (tzn. nazwa właściwości nie jest
zdefiniowana w indeksie) i ustawia błąd (patrz poniżej) wskazujący nieprawidłową właściwość
nazwa.

Zwrócony ciąg nie musi być zwalniany, ale jest ważny tylko dla bieżącego
wynik. Jeśli chcesz zapisać ciąg, musisz go skopiować lokalnie.

Daty są formatowane za pomocą zakodowanego na stałe ciągu formatującego: „%Y-%m-%d %H:%M:%S” w
czas lokalny.

unsigned long SwishResultPropertyULong(SW_RESULT r, char *nazwa właściwości);
Zwraca właściwość numeryczną jako unsigned long. Właściwości numeryczne są używane dla obu
Typ właściwości PropertyNamesNumeric i PropertyNamesDate. Daty są zwracane jako
uniksowy znacznik czasu zgłoszony przez system podczas tworzenia indeksu.

Swish-e zostanie przerwane, jeśli zostanie wywołane z obiektem SW_RESULT NULL. Bez SW_RESULT
obiekt swish-e nie może ustawić żadnych kodów błędów.

W przypadku błędu zwraca UMAX_LONG. Jest to powszechnie określane w limitach.h. Sprawdzać SwishBłąd()
(patrz poniżej) dla rodzaju błędu.

If SwishBłąd() zwraca false (zero) to oznacza to po prostu, że ten wynik nie jest
mieć jakiekolwiek dane dla określonej właściwości.

If SwishBłąd() zwraca prawdę (niezerową), wtedy podana nazwa właściwości to
nieprawidłowa lub żądana właściwość nie jest właściwością liczbową (lub datą) (np. jest to
właściwość ciągu).

Zobacz poniżej, jak pobrać konkretny komunikat o błędzie, gdy SwishBłąd() jest prawdziwy.

PropValue *getResultPropValue (SW_RESULT r, char *propertyname, int ID );
Jest to funkcja niskiego poziomu służąca do pobierania właściwości niezależnie od jej typu. To jest prawdopodobne
najlepsza funkcja dostępu do właściwości.

Swish-e zostanie przerwane, jeśli zostanie wywołane z obiektem SW_RESULT NULL. Propertyname to nazwa
nieruchomości. ID to numer identyfikacyjny nieruchomości, jeśli jest znany. Identyfikator nie jest normalnie
używany w interfejsie API, ale jego celem jest uniknięcie sprawdzania identyfikatora właściwości dla każdego
wyświetlony wynik.

Zwracana wartość PropValue to struktura, która zawiera flagę wskazującą typ oraz a
Unia, która przechowuje wartość właściwości. Ich flagi i struktura są zdefiniowane w
swish-eh

Właściwość należy skopiować lokalnie, a zwrócona wartość „PropValue” musi zostać zwolniona
poprzez dzwonienie freeResultPropValue() aby uniknąć wycieku pamięci.

W przypadku błędu zwraca NULL. Sprawdzać SwishBłąd() (patrz poniżej) dla rodzaju błędu.

Jeśli zwraca NULL, ale SwishBłąd() zwraca false (zero) to oznacza to po prostu, że to
wynik nie zawiera żadnych danych dla określonej właściwości.

If SwishBłąd() zwraca prawdę (niezerową), wtedy podana nazwa właściwości jest nieprawidłowa
(tj. niezdefiniowane dla indeksu).

Zobacz poniżej, jak pobrać konkretny komunikat o błędzie, gdy SwishBłąd() jest prawdziwy.

Zobacz perl/API.xs, aby zapoznać się z przykładem użycia tej funkcji.

void freeResultPropValue(void)
Zwalnia „PropValue” zwróconą po wywołaniu getResultPropValue().

void Free_Results_Object( SW_RESULTS wyniki );
Zwalnia obiekt wyników (zwalnia zestaw wyników). To musi być wywołane po zakończeniu
czytanie wyników i przed telefonem SwishZamknij().

dostępu dotychczasowy wskaźnik Nagłówek Wartości

Każdy plik indeksu ma skojarzone wartości nagłówka, które opisują indeks. Te funkcje
zapewnić dostęp do tych danych. Dane nagłówka są zwracane w postaci unii SWISH_HEADER_VALUE,
a wskaźnik do SWISH_HEADER_TYPE jest przekazywany, a zwrócona wartość wskazuje
typ zwracanych danych. Zobacz przykłady na src/libtest.c i perl/API.xs.

const char **SwishHeaderNames( SW_HANDLE);
Zwraca listę możliwych nazw nagłówków. Ta lista jest taka sama dla wszystkich plików indeksowych
danej wersji Swish-e. Zapewnia sposób na uzyskanie dostępu do wszystkich nagłówków
bez konieczności umieszczania ich w programie.

const char **SwishIndexNames( SW_HANDLE);
Zwraca listę otwartych plików indeksu. To jest tylko lista określonych plików indeksowych
SwishInit() połączenie. Potrzebujesz nazwy pliku indeksu, aby uzyskać dostęp do określonego
wartości nagłówka indeksu.

SWISH_HEADER_VALUE SwishHeaderValue( SW_HANDLE, const char *index_name, const char
*cur_header, SWISH_HEADER_TYPE *typ );
Pobiera wartość nagłówka dla podanego pliku indeksu oraz nazwę nagłówka. Zestawy połączeń
"typ" przekazany do typu zwracanej wartości.

Zobacz przykłady na src/libtest.c i perl/API.xs.

SWISH_HEADER_VALUE SwishResultIndexValue( SW_RESULT, const char *nazwa, SWISH_HEADER_TYPE
*rodzaj );
To jest jak SwishNagłówekWartość() powyżej, ale zamiast podawać nazwę pliku indeksu i
uchwyt swish, podaj obiekt wynikowy, a wartość nagłówka jest pobierana z
plik indeksu powiązany z wynikiem.

dostępu Nieruchomość Meta Dane

Oprócz wstępnie zdefiniowanych właściwości standardowych masz możliwość dodania
dodatkowe „meta” właściwości do zindeksowania i/lub dodania do listy zwracanych właściwości
z każdym wynikiem. Zapoznaj się z sekcjami dotyczącymi dyrektyw MetaNames i PropteryNames w
PLIK KONFIGURACJI w celu wyjaśnienia, jak to zrobić.

Funkcje te zapewniają dostęp do metadanych przechowywanych w indeksie. Możesz ich użyć do
określić, jakie informacje o meta/właściwościach są dostępne dla indeksu, w tym wszystkie
zdefiniowane właściwości standardowe. Zobacz libtest.c na przykład.

SWISH_META_LIST SwishMetaList( SW_HANDLE, const char *nazwa_indeksu);
Zwraca listę wpisów meta dla podanego pliku indeksu w postaci tablicy zakończonej znakiem NULL
obiektów SW_META. Użyj poniższych funkcji, aby wyodrębnić określone pola z
Struktura SW_META. Meta są różne od właściwości.

SWISH_META_LIST SwishPropertyList( SW_HANDLE, const char *nazwa_indeksu );
Ta funkcja jest taka sama jak SwishMetaLista() ale zwraca tablicę właściwości jako
w przeciwieństwie do obiektów meta. Atrybuty właściwości można wyodrębnić w taki sam sposób, jak meta
obiekty za pomocą poniższych funkcji.

SWISH_META_LIST SwishResultMetaList( SW_RESULT);
To jest jak SwishMetaLista() powyżej, ale określa indeks do użycia z wyniku
obiekt.

SWISH_META_LIST SwishResultPropertyList( SW_RESULT);
To jest jak SwishListaWłaściwości() powyżej, ale jak SwishResultMetaLista() używa wyniku
obiekt zamiast nazwy indeksu.

const char *SwishMetaName( SW_META );
Biorąc pod uwagę obiekt SW_META zwrócony przez jeden z powyższych, ta funkcja zwróci
nazwa meta/właściwości. Możesz użyć tej nazwy, aby uzyskać dostęp do wartości właściwości dla danego
jak opisano powyżej.

int SwishMetaType(SW_META);
Pobierz typ danych dla danej meta/właściwości. Znane typy są wymienione w swish-eh

SwishMetaID (SW_META);
Uzyskaj wewnętrzny numer identyfikacyjny dla danej meta/właściwości. Te identyfikatory są unikalne per
plik indeksu, ale nie są unikalne dla wyników.

Kontrola dla Błędy

Po wszystkich wywołaniach powinieneś sprawdzić błędy. Ostatni błąd jest przechowywany w uchwycie swish
obiekt i jest ważna tylko do następnej operacji (która resetuje flagi błędów).

Obecnie niektóre błędy są oznaczane jako błędy „krytyczne”. W takich przypadkach powinieneś
zniszczyć (wywołując SwishZamknij() funkcja ) aktualny swish uchwyt. Jeśli masz
inne obiekty w zasięgu (np. obiekt wyszukiwania lub obiekt wyników) niszczą je jako pierwsze.

Typy błędów, które są krytyczne, można zobaczyć w src/error.c. Obecnie lista
obejmuje:

Nie można otworzyć pliku indeksu
Nieznany format pliku indeksu
Plik(i) indeksu jest pusty
Błąd pliku indeksu
Nieprawidłowy uchwyt swish
Nieprawidłowy obiekt wyników

int SwishError( SW_HANDLE);
Zwraca wartość true, jeśli istnieje warunek błędu. Zwraca numer błędu, który jest
liczba całkowita mniejsza od zera w przypadku błędu. Należy to sprawdzić przed wywołaniem któregokolwiek z
inne funkcje błędów poniżej.

const char *SwishErrorString( SW_HANDLE);
Zwraca ogólny opis tekstowy bieżącego błędu.

const char *SwishLastErrorMsg(SW_HANDLE);
W niektórych przypadkach zwróci ciąg ze szczegółami dotyczącymi bieżącego błędu. Do
przykład, SwishErrorCiąg() może zwrócić "Nieznany metaname", ale SwishOstatniErrorMsg()
zwróci ciąg z nazwą nieznanej metanazwy.

int SwishCriticalError( SW_HANDLE);
Zwraca prawdę, jeśli bieżący stan błędu jest błędem krytycznym. O błędach krytycznych
należy zwolnić wszelkie bieżące obiekty i zadzwonić SwishZamknij() jak swish może być w
niestabilny stan.

void SwishAbortLastError(SW_HANDLE);
Jest to wygodna funkcja, która sformatuje i wydrukuje ostatni komunikat o błędzie oraz
następnie przerwij program.

void set_error_handle(PLIK *gdzie);
Ustawia, gdzie drukowane są błędy i ostrzeżenia (jeśli są drukowane przez swish). Dla historii
powodów, kiedy swish-e po raz pierwszy uruchamia się, błędy i ostrzeżenia są wysyłane na standardowe wyjście.

void SwishErrorsToStderr(void);
Wygodna metoda wysyłania błędów na stderr zamiast na standardowe wyjście.

Użyteczność Funkcje

const char *SwishWordsByLetter(SWISH * sw, char *nazwa indeksu, char c);
Zwraca wszystkie słowa w indeksie „indexname”, które zaczynają się od przekazanej litery.
Zwraca NULL, jeśli nazwa pliku indeksu jest nieprawidłowa.

Ta funkcja może ulec zmianie w przyszłości, ponieważ obecnie można używać tylko znaków 8-bitowych.

char * SwsishStemWord( SW_HANDLE sw, char *in_word );
Nieaktualna

Można to wykorzystać do zamiany słowa na jego rdzeń. Używa tylko oryginalnego Portera
Łodyga.

SW_FUZZYWORD SwishFuzzyWord( SW_RESULT r, znak *słowo );
Pnie „słowo” na podstawie trybu rozmytego wybranego podczas indeksowania.

Tryb rozmyty używany podczas indeksowania jest przechowywany w pliku indeksu. Ponieważ każdy wynik to
powiązany z podanym plikiem indeksowym ta metoda pozwala na zakorzenienie słowa na podstawie jego indeksu
plik.

Jednym z możliwych zastosowań jest wyróżnienie wyszukiwanych terminów w podsumowaniu dokumentu, które:
byłaby oparta na danym wyniku.

Poniższe metody mogą służyć do uzyskania dostępu do zwróconych danych. Obiekt SW_FUZZYWORD
musi zostać zwolniony po zakończeniu, aby uniknąć wycieku pamięci.

const char **SwishFuzzyWordList( SW_FUZZYWORD fw);
Zwraca listę łańcuchów zwróconych przez trzon zakończony znakiem NULL. W większości przypadków to
będzie pojedynczym ciągiem.

Oto przykład:

SW_FYZZYWORD fuzzy_word = SwishFuzzyWord( wynik );
const char **lista_słów = SwishFuzzyWordList(rozmyte_słowo );
while ( *lista_słów )
{
printf("%s\n", *lista_słów );
lista_słów++;
}
SwishFuzzyWordFree( rozmyte_słowo );

Jeśli rdzeń nie konwertujełańcucha (na przykład próba przekształcenia rdzenia liczbowego
data) lista_słów będzie zawierać oryginalne słowo. Aby stwierdzić, czy łodyga rzeczywiście
założyło słowo sprawdź zwracaną wartość za pomocą SwishRozmyte słowoBłąd().

int SwishFuzzyWordError( SW_FUZZYWORD fw);
Zwraca zero, jeśli operacja rdzenia powiodła się, w przeciwnym razie zwraca a
wartość wskazująca powód, dla którego słowo nie zostało ostemplowane. Zwracane wartości są zdefiniowane
w pliku swish-e src/stemmer.h.

Nie wszystkie łodygi ustawiają tę wartość poprawnie. Lecz odkąd SwishRozmytaListaSłów() wróci
prawidłowy ciąg, niezależnie od wartości zwracanej, często można po prostu zignorować to ustawienie.
To jest to co robię.

int SwishFuzzyWordCount( SW_FUZZYWORD fw);
Zwraca liczbę ciągów na liście słów dostępnych po wywołaniu
SwishRozmytaListaSłów().

Zwykle jest to tylko jeden, ale w przypadku DoubleMetaphone może to być jeden lub dwa
(tj. DoubleMetaphone może zwrócić jeden lub dwa ciągi).

const char *SwishFuzzyMode( SW_RESULT r );
Zwraca nazwę rdzenia użytego dla danego wyniku (który jest powiązany z an
indeks).

void SwishFuzzyWordFree( SW_FUZZYWORD fw);
Zwalnia pamięć używaną przez SW_FUZZYWORD.

Zgłaszanie błędów


Prosimy o zgłaszanie błędów do grupy dyskusyjnej Swish-e. Zapraszam również do poprawy lub
ulepszyć tę funkcję.

Autor


Oryginalny interfejs: sierpień 2000 Jose Ruiz [email chroniony]

Zaktualizowano: 22 sierpnia 2002 r. – Bill Moseley

Przeprojektowany interfejs dla wersji 2.3 Swish-e, 17 października 2002 r. — Bill Moseley

dokument Informacia


$Id: SWISH-LIBRARY.pod 1906 2007-02-07 19:25:16Z moseley $

.

Korzystaj ze SWISH-LIBRARY online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    oStorybook
    oStorybook
    oStorybook l'outil privil�gi� des
    crivains. UWAGA: voir sur
    http://ostorybook.tuxfamily.org/v5/
    --pl_PL oStorybook to odpowiednie narzędzie
    pisarze. OSTRZEŻENIE...
    Pobierz oStorybook
  • 2
    Asuswrt-Merlin
    Asuswrt-Merlin
    Asuswrt-Merlin jest stroną trzecią
    firmware dla wybranych urządzeń bezprzewodowych Asus
    routery. Oparty na oprogramowaniu Asuswrt
    opracowany przez Asusa, przynosi poprawki, nowe
    cechy i...
    Pobierz Asuswrt-Merlin
  • 3
    Atom
    Atom
    Atom to edytor tekstu
    nowoczesny, przystępny i w pełni funkcjonalny.
    Jest również łatwo konfigurowalny - ty
    może dostosować go do wszystkiego i być
    zdolny do ...
    Pobierz Atom
  • 4
    osu!
    osu!
    Osu! to prosta gra rytmiczna ze studnią
    przemyślana krzywa uczenia się dla graczy
    wszystkich poziomach umiejętności. Jeden z wielkich
    aspekty Osu! jest to, że jest
    dr społeczny...
    Pobierz Osu!
  • 5
    LIBPNG: biblioteka referencyjna PNG
    LIBPNG: biblioteka referencyjna PNG
    Biblioteka referencyjna do obsługi
    Format przenośnej grafiki sieciowej (PNG).
    Publiczność: Deweloperzy. Programowanie
    Język: C. Jest to aplikacja, która
    może także...
    Pobierz LIBPNG: Biblioteka referencyjna PNG
  • 6
    Wykrywacz metali oparty na RP2040
    Wykrywacz metali na bazie RP2040
    Oparta na płycie Raspberry Pi Pico
    wykrywacz metalu jest zawarty w impulsie
    kategoria indukcyjnych wykrywaczy metali, z
    dobrze znane zalety i wady.
    PR...
    Pobierz Wykrywacz metali oparty na RP2040
  • więcej »

Komendy systemu Linux

Ad