Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Sphinx] Sortowanie uwzględniając kolejność wystąpień słowa
Walian
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Jak ustawiać sortowanie, by Sphinx uwzględnił także kolejność występowania szukanego słowa w rekordach?
Czyli jak wyszukam "lampa" - żeby najpierw pokazywał rekordy, w których to słowo znajduje się jak najbliżej początku, potem rekordy, w których znajduje się jako drugie w kolejności itd.

W tej chwili mam po prostu:
  1. $sphinx->SetSortMode(SPH_SORT_RELEVANCE);


Wersja:
Sphinx 1.10-beta (r2420; Jul 19, 2010)
działa pod kontrolą CentOS.

Ten post edytował Walian 19.10.2010, 08:33:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Walian
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


No to widzę, że powinienem się Solrem poważnie zainteresować.
Dzięki za informacje ;-)

Edit:
Mam jeszcze jeden problem.
Używam SPH_MATCH_ANY.
Mam m.in taki produkt:
Kod
Apple MacBook Pro 15"" 2.66GHz/4GB/320GB/GeForce 9600M GT/SD

Gdy go wyszukuję poprzez wpisanie:
Kod
geforce 9600*

to mi go znajduje, natomiast używając poniższych kombinacji już nie:
Kod
apple geforce

Kod
apple geforce*

Kod
apple* geforce*

Kod
apple * geforce *

Kod
apple geforce 9600m

Kod
apple geforce 9600m*

Kod
geforce apple*


Widocznie zbyt restrykcyjnie szuka. Da się to jakoś obejść nie tracąc znacząco na dokładności sortowania?

Edit:
Zauważyłem, że takie coś daje rade:
Kod
geforce* | apple*

Ale czy to dobry pomysł?

EDIT:
Widzę, że to nie jest dobre rozwiązanie. Żałuję, że nie sprawdziłem na samym początku czy będzie taki problem w Sphinx-ie.
Jeśli próbuję znaleźć np:
Kod
ASUS GeForce 9500GT 1024MB DDR2 / 128bit DVI / HDMI PCI-E (550 / 800)

wpisując:
Kod
asus geforce*

to Sphinx go znajduje.
Jak wpiszę słowa w odwrotnej kolejności to nie znajduje.
Wpisanie:
Kod
geforce | asus*

Daje zbyt dużo wyników tzn zwraca na początku:
Kod
ASUS P5E-VM HDMI Intel G35 Socket 775

a pierwszy GeForce-em jaki znajduje się na liście wyników (dużo niżej) to:
Kod
Asus ENGTS250 GeForce GTS 250 CUDA 1GB DDR3 (256bit),2xDualDVI, HDCP, BOX

Wpisanie:
Kod
geforce & asus*

Ani trochę nie zmienia wyników! Czyżby bug?

Jakieś pomysły?

Ten post edytował Walian 21.10.2010, 12:39:45
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 23:06