Zewnetrzna wyszukiwarka

0

Wiele juz bylo w historii serwisu zmian w szukarce. Wiele tez bylo pomyslow.

Kolejny pomysl na zmiane to skorzystanie z zewnetrznego mechanizmu (mam tu na mysli Lucene). Mechanizmu korzystajacego z indeksu - nie z bazy SQL. Mozna by bylo wowczas zindeksowac wszystkie posty z forum oraz wszystkie artykuly w jednej bazie.

Plusow jest wiele:

  • zindeksowana cala baza
  • dokladniejsze wyszukiwanie
  • wyszukiwanie fraz krotszych lub rownych 3 znakom
  • zrezygnowanie z indeksow FULLTEXT (odciazenie bazy danych)

Minusem jest to, ze tresc na stronie zmienia sie dosyc czesto. Nie mam pomyslu jak indeksowac te strony. Jakis bot, reczne dodawanie przy kazdorazowym dodawaniu postu? :| Lucene nie obsluguje mechanizmu uaktualniania, trzeba wykasowac istniejaca strone, a nastepnie zindeksowac ja ponownie. Kazda strona jest identyfikowana poprzez ID.

Macie jakies pomysly? Czy jest to dobry pomysl?

0

A może by osadzić wyszukiwarkę Google?

0

Chyba wolalbym jednak, aby silnik i dane byly na serwerze, aby miec jakis wplyw na zindeksowane dane :)

Poza tym nie wiem na ile Google ma zindeksowane 4programmers.

0

Swoją drogą, chyba aż za bardzo ;) http://google.com/search?q=regulamin+site%3Awww.4programmers.net

A do szukania "w artykułach" najlepsze byłoby chyba zapytanie google(regulamin site:4programmers.net -site:*.4programmers.net) - jest tu mniej wyników niż na http://4programmers.net/search.php?q=regulamin, ale to dlatego, że w robots.txt wyłączone jest szukanie w text.php, a więc m.in. "po" newsach i wielu kategoriach (i artykułach w nich się znajdujących); inny przykład, common lisp, można porównać z imieniny

Odnośnie czasu w którym robot dotrze - w google można dać ping dla googlebota (np. po utworzeniu artykułu)

Abstrahując od wyszukiwarki 4p jako google:

  • Wypadałoby chyba usunąć text.php z robots.txt?
  • Jak widać w przykładzie m.in. "common lisp" w google, są artykuły ktore nie zawierają tych fraz teoretycznie - artykuł 'super form' został usunięty, teraz nic tam nie ma ale google zindeksowało nową zawartość [czyli strona gdzie można przejść do edycji oraz wyświetla 10 "podobnych tekstów"]. Moja propozycja, może wprowadzić dla nieistniejących tekstów nofollow?
0

Jestem za tym, aby podpiąć wyszukiwarke wujka google'a, ponieważ i tak szukam przez nią, bo jeszce nic poprzez tą na stronie upolowac mi sie nie dało :/

0

Mi się nie podoba wizja używania Google zamiast własnej wyszukiwarki.
forum: phpBB, IPB, i tona innych rozwiązań w zakresie forum używają własnej z powodzeniem.
artykuły: MediaWiki używa własnej wyszukiwarki z powodzeniem.

Google na prywatnej stronie mówię nie. Jedynie jako alternatywa, ale nie jako "wbudowana".

0

Podzielam zdanie Marooneda. To wydaje sie takie amatorskie.
Dlatego chcialem wykorzystac silnik Lucene, tylko pytam czy ktos ma moze doswiadczenie w zakresie indeksowania? Bo nie wiem czy do tego napisac dodatkowo bota, ktory bedzie indeksowal materialy? To jest w sumie najciezsza sprawa, hmmm...

no pomyslimy jeszcze...

0

No jeszcze tak btw, Marooned: na pclab (IPB) używają ;), bo ponoć mieli problemy z wydajnością tej domyślnej

@down: mi tam się podoba, ale to moje odczucie.

0

Coldpeer - no ale zobacz jak amatorsko wyglądają wyniki. Plusem w IPB/phpBB jest to, że można wyniki wyświetlić jako posty - tak na 4p było daaaaaaaawno temu, szkoda, że już nie jest.

Adam - rozumiem, że Ty piszesz o artykułach tylko - bez forum?
Bot to nie.. raczej podpięcie indeksacji do zdarzenia zapisu artykułu.

0

@Marooned: chcialbym zeby wyszukiwarka wyszukiwala w calym serwisie. Zarowno w forum i tekstach. Wreszcie cos fachowego.

Ok, podpiecie indeksacji w momencie dodania tekstu: zgoda. Ale czesto tresc postow czy tekstow ulega zmianie. Co wtedy? Ponowne indeksowanie (dubel). Ale co ze starym wynikiem. Nie ma takiej opcji, zeby w skrypcie pobrac ID zindeksowanej (starej) strony i ja usunac :/ To jest ten minus. No nic - tak na luzno rzucony temat, bo grzebie sobie przy Coyote i tak mnie naszlo :)

0

Tak akurat w kwestii wyszukiwarek poszło u nas w firmie - warto rzucić okiem, dla mnie świetne
http://www.powerset.com/

A co do edycji, to nie rozumiem argumentacji. Dlaczego nie można usunąć starego indeksu dla danej strony i wygenerować nowego?

0

ogolnie wyszukiwarka to żal.... jedno jedyne pole "szukaj" i 3 radio buttony - teksty, forum, download...

To ju na phpBB jest lepsza... przynajmniej mozna wybrac w jakich dzialach chce szukac. Inna rzecz - szukanie postow uzytkownika, niby jest ale gdzies "zakopane" (w profilu usera?) - bo jak klikne "wyszukaj" to nie ma

0

Szukanie postów usera nie działa? Mi działa.
I nie porównuj wyszukiwarki artykułów do postów z phpBB - 2 pary kaloszy.

0

othello: chyba pomyliłeś imieniny z http://4programmers.net/Forum/search.php

0

Ok moja wina... chodzilo mi link do szukania i pole edit na gorze a nie o przycisk - nie bylo tematu

0

A takie coś? W pracy znajomy zapodał, nie wgryzałem się.
http://www.sphinxsearch.com/about.html

0

Ostatnio spotkalem sie z silnikiem wyszukiwania solr. Napisana w javie wiec potrzebuje jakiegos tomcata do dzialania. Ma wbudowany panel do obslugi/statystyk itp. Index buduje sie wysylajac odpowiedni plik XML, np:

<add><doc>
  <field name="id">3007WFP</field>
  <field name="name">Dell Widescreen UltraSharp 3007WFP</field>
  <field name="manu">Dell, Inc.</field>
  <field name="cat">electronics</field>
  <field name="cat">monitor</field>
  <field name="features">30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
  <field name="includes">USB cable</field>
  <field name="weight">401.6</field>
  <field name="price">2199</field>
  <field name="popularity">6</field>
  <field name="inStock">true</field>
</doc></add>

Zapytanie do wyszukiwarki robic mozna przez file_get_contents() i zwraca

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
 <int name="status">0</int>
 <int name="QTime">13</int>
 <lst name="params">
  <str name="rows">10</str>
  <str name="start">0</str>
  <str name="indent">on</str>
  <str name="q">monitor</str>
  <str name="version">2.2</str>
 </lst>
</lst>
<result name="response" numFound="2" start="0">
 <doc>
  <arr name="cat"><str>electronics</str><str>monitor</str></arr>
  <arr name="features"><str>19" TFT active matrix LCD, 8ms response time, 1280 x 1024 native resolution</str></arr>
  <str name="id">VA902B</str>
  <bool name="inStock">true</bool>
  <str name="manu">ViewSonic Corp.</str>
  <str name="name">ViewSonic VA902B - flat panel display - TFT - 19"</str>
  <int name="popularity">6</int>
  <float name="price">279.95</float>
  <str name="sku">VA902B</str>
  <arr name="spell"><str>ViewSonic VA902B - flat panel display - TFT - 19"</str></arr>
  <date name="timestamp">2008-12-14T21:22:32.019Z</date>
  <float name="weight">190.4</float>
 </doc>
 <doc>
  <arr name="cat"><str>electronics</str><str>monitor</str></arr>
  <arr name="features"><str>30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</str></arr>
  <str name="id">3007WFP</str>
  <bool name="inStock">true</bool>
  <str name="includes">USB cable</str>
  <str name="manu">Dell, Inc.</str>
  <str name="name">Dell Widescreen UltraSharp 3007WFP</str>
  <int name="popularity">6</int>
  <float name="price">2199.0</float>
  <str name="sku">3007WFP</str>
  <arr name="spell"><str>Dell Widescreen UltraSharp 3007WFP</str></arr>
  <date name="timestamp">2008-12-14T21:22:32.035Z</date>
  <float name="weight">401.6</float>
 </doc>
</result>
</response>

Korzystanie z tego wydaje sie dosc proste, indeksowac mozna przy kazdej edycji/dodawaniu postu/artykulu. Pojedyncze elementy z indeksu mozna usuwac wiec nie ma problemu z aktualizacja. Sam Solr nawet potrafi zwrocic kod php ktory po eval() mozna wykorzystac ale nie wiem jak to wyglada.

//
Dodam tylko ze zindeksowalem w ten sposob wszystkie swoje ebooki, ich laczna ilosc 8.6GB prawie 14k plikow. Indeksowanie polegalo na przekonwertowaniu wszystkich typow (pdf,html,doc,rtf) plikow do txt i wrzucenie pokazanym wyzej xmlem, trwalo to 1.5h :) Po calej operacji indeks zajmuje 919MB (mozna dodatkowo wlaczyc kompresje). Ksiazki wyszukuje sie mega szybko co mozna sobie sprawdzic http://paprykarz.org/search.php

0

Jednak po namysle zdecydowalem sie na wykorzystanie Lucene.
M.in. dlatego, ze istnieje implementacja dla PHP. Dla forum i tak pozostanie wyszukiwarka taka jaka jest, ale oprocz tego Lucene bedzie miala skatalogowany caly serwis.

Aktualnie jestem w trakcie pisania malego bocika ktory bedzie powoli chodzil po witrynie i katalogowal ja. :)

0

Napisalem prostego robaka. Na pewno wymaga jeszcze dopracowania, ale to wersja dev ;)

Wiecej informacji tutaj : http://4programmers.net/trac/coyote/wiki/Tweety

0

Mała uwaga - polecałbym w oficjalnej dokumentacji używać jednak polskich znaków diakrytycznych :)

Tweety _

0
Marooned napisał(a)

Mała uwaga - polecałbym w oficjalnej dokumentacji używać jednak polskich znaków diakrytycznych :)

No wlasnie nie wiem, jak to traktowac. Do tej pory pisalem dokumentacje w DocBooku. I teraz mamy DocBook (eksportowany do HTML-a) oraz phpdoc (rowniez w formacie HTML). I ten format jest bardziej przenosny i uniwersalny (w koncu XML).

Z drugiej strony w wiki na tracu o wiele szybciej i prosciej sie pisze. Niby jest jakis plugin eksportujacy strony z traca do docbook, ale ktoz wie jak to dziala...

Tweety _

[green]

0

Nie ważne gdzie, ważne by po polsku ;)
Nie będziesz potem przy ewentualnym eksporcie do innego formatu dodawał ąćłć...

1 użytkowników online, w tym zalogowanych: 0, gości: 1