W inżynierii oprogramowania indeksy tworzymy cały czas (np. W bazach danych), ale słyszę też, że wiele osób mówi o indeksach odwróconych. Czy jest między nimi coś zasadniczo innego? Brzmią jak to samo.
W inżynierii oprogramowania indeksy tworzymy cały czas (np. W bazach danych), ale słyszę też, że wiele osób mówi o indeksach odwróconych. Czy jest między nimi coś zasadniczo innego? Brzmią jak to samo.
Odpowiedzi:
Jednym z typowych zastosowań jest „… aby umożliwić szybkie wyszukiwanie pełnotekstowe”.
Te dwa typy oznaczają kierunkowość . Jeden prowadzi cię do przodu przez indeks, a drugi do tyłu (odwrotnie) przez indeks. Otóż to. Nie ma tu żadnej tajemnicy do odkrycia. W przeciwnym razie te dwa typy są identyczne, to tylko kwestia tego, jakie masz informacje , a co za tym idzie, jakie informacje próbujesz znaleźć.
Aby odpowiedzieć na twoje zapytanie, nie sądzę, aby rzeczywiście można było dowiedzieć się, dlaczego zastosowanie jest takie, jakie jest dzisiaj. Jedynym powodem, dla którego ważne jest zdefiniowanie, który jest, forward
a który jest, inverted
jest to, że wszyscy możemy o nich porozmawiać i wszyscy wiedzą, o którym kierunku mówimy. Pomyśl o terminach „lewy” i „prawy”: są one względne. Co nie ma znaczenia, poza tym, że każdy musi się zgodzić, który z nich jest „lewy”, a który „właściwy”, aby słowa miały znaczenie. Gdybyśmy jako kultura zdecydowali się odwrócić w lewo i w prawo, mielibyście ten sam problem, zastanawiając się, czym jest „skręt w prawo”, a co „skręt w lewo”, odkąd zmieniło się uzgodnione znaczenie. Jednak nazewnictwo jest arbitralne, na znaczeniu.
W swoim komentarzu, w którym pytasz „proszę, nie definiuj tylko terminów”, nie rozumiesz sedna sprawy i myślę, że po prostu rozłączasz się ze sformułowaniami, podczas gdy nie ma między nimi absolutnie żadnej różnicy.
Z korzyścią dla przyszłych czytelników przedstawię teraz kilka przykładów indeksów „do przodu” i „odwróconych”:
Jeśli myślisz, że odwrotność indeksu jest czymś w rodzaju odwrotności funkcji w matematyce , gdzie odwrotność jest specjalną rzeczą, która ma inną postać, to się mylisz: tak nie jest w tym przypadku.
W wyszukiwarce masz listę dokumentów (stron w witrynach internetowych), w których wpisujesz słowa kluczowe i otrzymujesz wyniki.
Wskaźnik do przodu (lub po prostu index) jest wykaz dokumentów , a które słowa pojawiają się w nich. W przykładzie wyszukiwania w sieci Google przeszukuje sieć, budując listę dokumentów i ustalając, które słowa pojawiają się na każdej stronie.
Odwrócony wskaźnik jest lista słów , oraz dokumenty, w których się pojawiają. W przykładzie wyszukiwania w Internecie podajesz listę słów (zapytanie wyszukiwania), a Google tworzy dokumenty (linki wyników wyszukiwania).
Oba są indeksami - to tylko kwestia, w którym kierunku zmierzasz. Przekaż dalej pochodzi z dokumentów-> do-> słów, odwrócony jest od słów-> do-> dokumentów.
Innym przykładem jest wyszukiwanie DNS (które pobiera nazwę hosta i zwraca adres IP) i wyszukiwanie wsteczne (które pobiera adres IP i podaje nazwę hosta).
Indeks z tyłu książki jest w rzeczywistości indeksem odwróconym , zgodnie z powyższymi przykładami - listą słów i miejscem ich znalezienia w książce. W książce spis treści jest jak indeks do przodu : jest to lista dokumentów (rozdziałów), które zawiera książka, z wyjątkiem tego, że zamiast wymieniać słowa w tych sekcjach, spis treści podaje tylko nazwę / ogólny opis tego, co jest zawarte w tych dokumentach (rozdziałach).
Indeks naprzód w telefonie komórkowym jest twoja lista kontaktów, a których numery telefonów (komórka, dom, praca) są związane z tymi kontaktami. Odwrócony wskaźnik jest to, co pozwala na ręczne wprowadzenie numeru telefonu, a po trafieniu „dial” zobaczysz nazwisko osoby, zamiast liczby, ponieważ telefon został wzięty pod numer telefonu i znaleźć Ci kontakt z nim związane.
Nazwali to odwróceniem tylko dlatego, że istnieje już indeks do przodu. Weźmy na przykład wyszukiwarkę, która składa się z dwóch części: pierwsza część to „robot sieciowy i parser”, które budują indeks z dokumentu do słowa, druga część to baza danych wyszukiwania, która buduje indeks ze słowa do dokumentu. Ponieważ istnieje pierwszy indeks, naturalnie nazywamy drugi indeks indeksem odwróconym.
Jeśli nazwiesz spis treści (spis treści) książki jako indeks, powinieneś nazwać indeks na końcu książki jako „indeks odwrócony”. Lub z drugiej strony możesz nazwać spis treści jako indeks odwrócony.
inverted index
mimo że wszystkie normalne wskaźniki w naszym życiu są już używane jako inverted
.
zazwyczaj mówiąc o indeksie, masz na myśli jakieś dodatkowe obliczenia lub zapisane wyniki procedur, które zostały wykonane w celu przyspieszenia aplikacji (np. MySQL lub inny RDBMS Skonsultuj się z MySQL w dokumentacji ). Indeksowanie może być również związane z buforowaniem itp.
Odwrócony indeks tworzy plik o strukturze przeznaczonej głównie do wyszukiwania (pełnotekstowego).
Indeks odwrócony składa się z dwóch głównych plików:
W słowniku są popularne słowa wyodrębnione z tekstu (oczywiście po przefiltrowaniu słów z czarnej listy, takich jak zaimki). Plik wystąpień zawiera powiązania między słowami i dokumentami (słowo 1 pojawia się w doc1 i doc2, a nie w doc3). Jest reprezentowany w postaci macierzy.
Na powyższym obrazku pokazano proces tworzenia dwóch wspomnianych plików.
Jeśli jesteś dalej zainteresowany tą problematyką, mogę polecić Ci świetną książkę napisaną przez Ricardo Yated - Modern Information Retrieval ( zobacz na Amazon ) - chyba około strony 200.
Mam nadzieję, że to pomoże :-)
Normalność już cudownie rozróżniła między indeksem forward i indeksem odwróconym, ale jeśli chodzi o pytanie, dlaczego jeden jest nazywany indeksem terminowym, a drugi indeksem odwróconym, może dlatego są tak nazywane ---
Biorąc przykład z przeszukiwania i indeksowania w wyszukiwarkach (lub tworzenia indeksu książki), indeks do przodu może być tworzony jednocześnie podczas przeszukiwania stron internetowych (lub czytania książki) lub przechodzenia do przodu . Więc jeśli masz 10 stron internetowych do przeszukania (lub 10 rozdziałów w książce), możesz zaindeksować pierwszą stronę internetową (przeczytaj pierwszy rozdział), a następnie utworzyć listę słów, które pojawiają się na stronie (słowa, które pojawiają się w rozdziale) i kontynuować ten proces dla innych stron internetowych (innych rozdziałów), więc do czasu przeszukania wszystkich 10 stron internetowych (przeczytania wszystkich 10 rozdziałów), Twój indeks w przód jest kompletny i każda strona internetowa (rozdział) wskazuje listę zawartych w niej słów .
Aby jednak utworzyć odwrócony indeks, musisz przeszukać wszystkie 10 stron internetowych (przeczytaj 10 rozdziałów), a następnie pobrać każde słowo z listy dokumentów i dowiedzieć się, które dokumenty zawierają to słowo. Jest to więc jak cofanie się po przeszukaniu stron internetowych (przeczytaj rozdziały książki) . Więc nazywa się to odwróconym indeksem.
To tylko moje spekulacje.
Istnieje wiele typów indeksów. Na przykład B-tree, R-tree, hash ... Do różnych celów musimy wybrać właściwy indeks.
Indeks odwrócony jest wyjątkowy. Indeks odwrócony zwykle używany w wyszukiwarce pełnotekstowej. Korzystając z odwróconego indeksu, możemy jak najszybciej zlokalizować słowo w dokumencie (lub zestawie dokumentów). Pomyśl o limicie pamięci i procesora, inny indeks nie może zakończyć tego zadania.
Możesz przeczytać dokument Lucene, aby uzyskać więcej informacji. To wyszukiwarka open source. http://lucene.apache.org/java/docs/index.html
Termin „Indeks odwróconych słów” odnosi się do zmiany relacji pojedynczego dokumentu zawierającego wiele słów do każdego unikalnego słowa zawierającego (lub identyfikującego) listę wielu dokumentów. Jest to efektywne przyjęcie relacji jeden do wielu (dokumenty na słowa) i odwrócenie (lub odwrócenie) go w taki sposób, że istnieje teraz nowy „odwrócony” związek jeden do wielu, który jest unikalnym słowem odnoszącym się do wielu Dokumenty (czyli wszystko, co zawiera to słowo). Jego pochodzenie jest naprawdę proste, a termin „odwrócony indeks” był używany do opisania ręcznych indeksów tego samego typu na długo przed istnieniem komputerów i elektronicznego szybkiego indeksowania (tak, przyznaję, jestem starym, prymitywnym programistą, prawie wystarczająco stara, by uważać Grace Hopper za „słodką młodą damę” wiek odpowiedni do zalotów, kiedy COBOL był nowym, błyszczącym językiem). Proszę, nie odrzucajcie nas jeszcze, staruszków, ponieważ czasami możemy zapewnić przydatne, a być może nawet cenne, historyczne ciekawostki - to znaczy, gdy nasza osobista pamięć RAM nadal działa. [szeroki uśmiech]
w indeksach odwróconych mamy następującą postać:
word1-> lista dokumentów, w których występuje (kolejność posortowana)
word2-> lista dokumentów, w których występuje (kolejność posortowana)
Jest to bardzo przydatne do przetwarzania zapytań w wyszukiwarkach, ponieważ pozwala nam znaleźć dokumenty, w których występuje słowo.
Możesz użyć nadzorowanego uczenia maszynowego do zbudowania tego odwróconego indeksu.
Jeszcze jedna różnica:
Obsługa aktualizacji z indeksem odwróconym jest kosztowna w porównaniu z indeksem forward.
Indeks do przodu obsługuje aktualizacje z łatwością, odzwierciedlając zmiany tylko w odpowiednim indeksie dokumentu, podczas gdy w indeksie odwróconym ta sama zmiana musi odzwierciedlać się w wielu pozycjach w indeksie odwróconym.