I Elasticsearch navngives data streams på nogle grundlæggende regler og best practice, som er defineret af Elasticsearch selv.
Mere relevante søgeresutater i Elasticsearch
For at give brugeren de mest relevante søge resultater i Elasticsearch er der mulighed for at lave det der hedder en bool søgning. Det går ud på at den laver forskellige søgninger og prioritere resultatet derefter.
Den kan deles op i 3 dele:
- must : skal være i resultatet
- could : kan være i resultatet
- should : skulle være i resultatet
Det er ikke nødvendigt at benytte alle 3 på en gang.
Eksempel:
curl -XGET 'localhost:9200/_search?pretty' -d '{ "query": { "bool": { "must": { "match": { "name" : "stavefelj" } }, "should": { "match": { "name": { "query": "stavefelj", "fuzziness": 2, "prefix_length": 1 } } } } } }'
Her laver jeg en bool med 2 forksllige querys. Hvor den ene forsøger at finde ordet stavefelj (lig mærke til slåfejlen) og i næste benytter jeg en Fuzzy search.
Det er ikke noget krav at den ikke finder noget i en af søgningerne. Hvis den finder noget i must vil dette blot have en større score og dermed være det mest relevante resultat.
Comments (0)