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.
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ę:
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? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 1 Dołączył: 9.10.2003 Ostrzeżenie: (0%)
|
A próbował się ktoś z polską morfologią w sphinxie? Z tego, czego się doszukałem wynika, że bez rozszerzeń są dostępne morfologie angielska i rosyjska (conf-morphology), ale da się doinstalować stemmery do języków: danish, dutch, english, finnish, french, german, hungarian, italian, norwegian, portuguese, romanian, russian, spanish, swedish, turkish. Poszukaj w google "morfologik". W sphinxie jest możliwy jest stemming słownikowy, potrzebny jest plik tekstowy z parami wyrazów: wyraz>forma podstawowa wyraz>forma podstawowa wyraz>forma podstawowa ... Słownik z takimi parami dla języka polskiego można na pewno gdzieś dorwać w internecie (IMG:style_emoticons/default/smile.gif) Oczywiście taki słownik jest bardzo duży (kilka milionów par) i trochę odbije się to na wydajności samego Sphinx'a. Wzrośnie nie tylko czas indeksowania (co zazwyczaj nie jest takim dużym problemem) ale także czas wyszukiwania. W LF24.pl rozwiązaliśmy to trochę inaczej - stemming przeprowadzany jest "zewnętrznie", za pomocą memcached. Indeksowanie nie odbywa się za pomocą xmlpipe2 - tzn. Sphinx nie indeksuje bezpośrednio z bazy, tylko plik XML generowany za pomocą skryptu. (Format tego pliku jest opisany w dokumentacji Sphix'a). W czasie generowania tego pliku wszystkie wyrazy są stemmowane. Podobnie przed przesłaniem zapytania do bazy, wszystkie wyrazy są również stemmowane. Wymaga to trochę zabawy, ale pozwoliło skrócić czas wyszukiwania prawie dwukrotnie (IMG:style_emoticons/default/smile.gif) Jeśli baza nie jest jakaś gigantyczna a te kilka milisekund czasu wyszukiwania nie jest kluczowe można zostać przy prostszym rozwiązaniu stemming słownikowy w Sphinxie - opcja wordforms w Sphinxie. Można ewentualnie pokusić się o napisanie własnego stemmera algorytmicznego dla języka polskiego - wydaje mi się, że widziałem taki projekt, więc jest to w ogóle możliwe (IMG:style_emoticons/default/smile.gif) |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 4.12.2025 - 17:13 |