Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> wyszukiwarka, wydajna, z prawdziwego zdarzenia ;)
chmolu
post 4.12.2005, 00:48:17
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

Ostrzeżenie: (0%)
-----


Witam,

wiem, że takie tematy już były, ale nie znalazłem w nich żadnych konkretów.

Jak podeszlibyście do problemu zbudowania mechanizmu wyszukiwarki dla systemu, który nierzadko może obsługiwać spore ilości danych (w wielu tabelach)?

Interesuje mnie wszystko na ten temat - linki, artykuły, tutoriale.

Spotkałem się już w kilku aplikacjach z rozwiązaniem, które wyglądało mniej więcej tak:
treść tabeli, np. articles jest dzielona na słowa, np tekst:
Cytat
To jest przykładowa treść artykułu

Zostanie podzielony na tablicę:
  1. <?php
  2. array('jest', 'przykładowa', 'treść', 'artykułu');
  3. ?>

Słowo "to" jest traktowane jako tzw. common word i pomijane.

Te słowa są wrzucane do osobnej tabeli, która ma mniej wiecej taką strukturę:
Kod
word_id
word_text


Do tego jest jeszcze jedna tabela, która łączy artykuł ze słowami:
Kod
article_id
word_id



Rozwiązanie ciekawe, ale zastanawia mnie, jak to jest z jego wydajnością. O ile liczba słów jest ograniczona, to druga tabela może się nieźle rozrosnąć. Pisał już ktoś coś takiego? Jakie są wasze sposoby na problem wyszukiwarki w CMSach?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
chmolu
post 4.12.2005, 10:36:23
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

Ostrzeżenie: (0%)
-----


Z tego, co pamiętam to rozszerzenie BitSet nie jest standardowo dołączane do php, więc takie rozwiązanie odpada.

Jak na razie najrosądniejszym rozwiązaniem byłoby zastosowanie FULLTEXT search MySQL'a. Jest jednak ten problem, że definitywnie tracę tu kompatybilność z innymi systemami RDBMS :/
Go to the top of the page
+Quote Post

Posty w temacie
- chmolu   wyszukiwarka   4.12.2005, 00:48:17
- - dtb   http://www.phpsolmag.org/pl/modules/news2/....php?...   4.12.2005, 10:18:37
- - chmolu   Z tego, co pamiętam to rozszerzenie BitSet nie jes...   4.12.2005, 10:36:23
- - bela_666   http://lucene.apache.org/ - Javove ale zawsze możn...   4.12.2005, 10:42:11
|- - kosmowariat   Cytat(bela_666 @ 4.12.2005, 10:42:11 ...   27.02.2009, 10:44:04
- - SongoQ   Wyszukiwanie zalezy od rodzaju bazy, niektore wspo...   4.12.2005, 12:58:23
- - chmolu   Niestety muszę wrócić do tej sprawy. Przez głupi ...   15.01.2006, 11:50:36
- - bela_666   Tsearch2?   15.01.2006, 15:09:04
- - Bora   Cytat(chmolu @ 2005-12-04 00:48:17)Do tego je...   15.01.2006, 16:37:31
- - ActivePlayer   a jak wyliczyc trafność ?   15.01.2006, 19:39:19
|- - Martio   Cytat(ActivePlayer @ 15.01.2006, 20:39...   3.05.2007, 08:30:46
- - chmolu   A jak ma się sprawa z LIKE %cośtam%? Czy jeśli ma...   15.01.2006, 20:16:25
- - SongoQ   LIKE jest zabojczy dla baz   15.01.2006, 22:31:51
- - ergo   ja chyba czegos nie rozumiem , bo o ile mi sie wyd...   3.03.2006, 13:53:54
- - pawkow   Według was należy ograniczać u...   19.03.2007, 16:24:40
- - Sedziwoj   pawkow to rozwiązanie jest kiepskie, ponieważ przy...   26.03.2007, 23:24:19
|- - SHiP   Cytat(Sedziwoj @ 26.03.2007, 22:24:19...   8.05.2007, 19:09:19
|- - Mikz   Cytat(Sedziwoj @ 27.03.2007, 00:24:19...   25.06.2010, 17:03:41
|- - Sedziwoj   Cytat(Mikz @ 25.06.2010, 18:03:41 ) S...   16.06.2011, 09:18:49
- - Turgon   W mojej opinii otagowywać i na ich podstawie szuka...   27.03.2007, 17:32:19
- - zbig   Mysle , ze temat wyszukiwarek jest zbyt wielki zeb...   5.05.2007, 13:55:38
|- - rashid   Cytat(zbig @ 5.05.2007, 14:55:38 ) W ...   10.05.2007, 10:11:48
|- - jupeter   Ja znalazłem dobre rozwiązanie na indekser podgląd...   24.06.2007, 23:43:35
- - Riklaunim   jest też Xapian - http://www.xapian.org/ który ma ...   5.05.2007, 19:32:41
- - AcidBurnt   fajny przykład na PostgreSQL: http://www.depesz....   25.06.2007, 17:52:10
- - rubinek   Sphinx -> http://www.sphinxsearch.com/ -> i ...   27.05.2008, 13:33:38
- - Strzałek   Jednak nie każdy ma możliwość ...   11.10.2008, 15:25:16
- - c3zi   Tak, ktoś używa. Jest bardzo wydajny jeśli chodzi ...   8.11.2008, 12:39:52
- - NuLL   A czy Sphinx potrafi indeksowac kilka tabel z dany...   27.01.2009, 15:54:10
|- - Strzałek   Cytat(NuLL @ 27.01.2009, 15:54:10 ) A...   5.03.2009, 17:54:28
- - rashid   Sphinx indeksuje dane z dowolnego zapytania, wiec ...   31.01.2009, 12:33:57
- - ropsiU   A próbował się ktoś z polską morfologią w sphinxie...   27.11.2009, 11:16:33
- - pawel_   Ja używam czegoś takiego ( w sekcji index ) Kodcha...   4.12.2009, 11:19:22
- - mr__y   Cytat(ropsiU @ 27.11.2009, 12:16:33 )...   27.02.2010, 15:02:16
- - pawel_   Skrypcik: Kod<?php # ten plik ściągamy z htt...   1.03.2010, 12:02:27
- - Wave   Na czym polega wyszukiwanie z użyciem indeksu słów...   29.06.2010, 12:15:30
- - ulow   Indekser zapisuje w bazie/pamięci/gdzie chcesz poj...   29.06.2010, 13:57:41
|- - Wave   Cytat(ulow @ 29.06.2010, 14:57:41 ) C...   30.06.2010, 23:13:52
- - ulow   chodziło o "na podstawie jednego do dwóch słó...   3.07.2010, 09:22:33
- - gothye   podobne rozwiązanie wykorzystane jest w silniku fo...   17.01.2011, 12:12:29
- - mankowski   Witam, A ma ktos moze jakis tutorial do sphinxa, n...   27.06.2011, 12:10:28
- - Ormin   Taka jeszcze krotka piłka - Sphinx czy Lucene i dl...   28.06.2011, 14:17:06
- - Hellz   http://webhosting.pl/Sphinx.zbuduj.wlasna.wyszukiw...   29.06.2011, 18:21:58
- - darko   Polecam Apache Solr oparty o Lucene. Łatwe, szybki...   30.06.2011, 18:20:16
- - mrWodoo   Ja zadam inne (banalne) pytanie. Na czym polega wy...   31.03.2012, 14:51:13
- - marcio   Czy nie chodzi ci o cos takiego: http://www.beldzi...   31.03.2012, 20:03:13
- - mrWodoo   Nie, nie chodziło mi o podpowiedzi, tylko jak się ...   31.03.2012, 20:25:28
- - marcio   Cytat(mrWodoo @ 31.03.2012, 21:25:28 ...   31.03.2012, 21:59:48


Reply to this topicStart new topic
3 Użytkowników czyta ten temat (3 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 18:39