Just nu i M3-nätverket
Gå till innehåll
Christoph

FULLTEXT som söker inom ord?

Rekommendera Poster

Christoph

Hej,

 

jag har en lista med "tags" som jag använder mig av för att försörja en autocomlete-funktion på en sajt med ett JSON-response. Problemet är att jag inte riktig vet hur man söker inom ord, inte bara från ordets början:

 

SELECT *, MATCH(tagText) AGAINST ('+bull*' IN BOOLEAN MODE) AS score FROM tag WHERE MATCH(tagText) AGAINST ('+bull*' IN BOOLEAN MODE) ORDER BY score DESC, tagText ASC LIMIT 0,5

 

Returnerar t ex "bullar" eller "bulldog", men inte "köttbullar".

 

Finns det någon som vet om detta ens är möjligt? Jag kunde ju använda mig av LIKE "%...%", men då får jag ingen relevans - vilket är viktig.

 

Tacksam för all hjälp!

 

Christoph

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Jonas__B

kan du inte lägga till ett OR där du skriver '+*bull*' eller liknande?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Christoph

kan du inte lägga till ett OR där du skriver '+*bull*' eller liknande?

 

Tyvärr inte - +*bull* returnerar ingenting. Citat från manualen ang. *-operator'n:

 

The asterisk serves as the truncation (or wildcard) operator. Unlike the other operators, it should be appended to the word to be affected. Words match if they begin with the word preceding the * operator.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Christoph

Fixed.

 

SELECT *
FROM tag
WHERE tagText LIKE "%bull%"

ORDER BY 
ROUND(( /* dettta räknar antal förekomster i strängen */
    LENGTH(
        REPLACE(tagText, 'bull', REPEAT('bull', 2))
        ) -
    LENGTH(
        tagText
        )
) / 2) DESC, 

       IF (tagText LIKE 'bull%',1,0) DESC, /* extrapoäng om frasen börjar med 'bull' */
       LENGTH(tagText) /* extrapoäng om frasen är kort */

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...