Semantisk søk og hybridsøk
Implementer avanserte søketeknikker som kombinerer vektorsimilaritet med nøkkelordsamsvar for bedre resultater.
Semantisk søk og hybridsøk er en gratis leksjon i Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Vektordatabaser: Pinecone, Weaviate og pgvector, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.
Mer enn grunnleggende søk
Velkommen! I denne leksjonen går vi i dybden på avanserte søketeknikker i Weaviate. Vi går videre fra enkle vektorsøk og utforsker hvordan du kan kombinere ulike metoder for svært presise resultater.
Vi dekker:
- Rent semantisk søk
- Tradisjonelt nøkkelordsøk (BM25)
- Kraften i hybridsøk
Semantisk søk: betydning først
Semantisk søk finner elementer basert på betydningen deres, ikke bare på nøyaktige ord. Det bruker vektor-embedding-er til å representere data og måler «avstand» for å finne lignende konsepter. Weaviate bruker .with_near_text() til dette.
Prøv dette eksempelet:
import weaviate
import os
# Connect to your Weaviate instance
# Ensure WEAVIATE_URL is set (e.g., "http://localhost:8080")
client = weaviate.Client(
url=os.getenv("WEAVIATE_URL", "http://localhost:8080")
)
# Make sure you have an 'Article' class with 'title' and 'content' properties
# and some data imported for this to work!
query_concept = "latest advancements in technology"
response = client.query.get(
"Article", # Your class name
["title", "content"]
).with_near_text(
{"concepts": [query_concept]}
).with_limit(2).do()
print("Semantic Search Results:")
for item in response["data"]["Get"]["Article"]:
print(f"- {item['title']}")Grunnleggende om nøkkelordsøk
Selv om semantisk søk er kraftig, trenger du noen ganger å finne nøyaktige nøkkelord. Det er her tradisjonelt nøkkelordsøk kommer inn. Weaviate støtter dette ved hjelp av BM25-algoritmen.
BM25 (Best Match 25) er en rangeringsfunksjon som brukes av søkemotorer til å anslå hvor relevante dokumenter er for et gitt søk. Den er svært nyttig når du vet nøyaktig hvilke ord du leter etter.
Nøkkelordsøk med BM25
Du kan utføre søk etter nøkkelord i Weaviate ved å kombinere et .with_where()-filter med et tekstsøk og be om _additional {score} for å se BM25-relevansen.
Slik søker du etter artikler som inneholder bestemte nøkkelord:
import weaviate
import os
# Connect to your Weaviate instance
client = weaviate.Client(
url=os.getenv("WEAVIATE_URL", "http://localhost:8080")
)
# Make sure you have an 'Article' class with 'title' and 'content' properties
# and some data imported for this to work!
keyword_query = "AI" # Search for articles containing "AI"
response = client.query.get(
"Article",
["title", "content", "_additional {score}"] # Request BM25 score
).with_where({
"path": ["content"], # Search in the 'content' field
"operator": "Like",
"valueText": f"*{keyword_query}*" # Wildcard search
}).with_limit(2).do()
print("Keyword Search Results:")
for item in response["data"]["Get"]["Article"]:
print(f"- {item['title']} (BM25 Score: {item['_additional']['score']:.2f})")Hvorfor hybrid? Begrensninger
Både semantiske søk og nøkkelordsøk har styrker og svakheter:
- Semantisk: Svært godt egnet til å forstå konsepter, men kan gå glipp av eksakte termer.
- Nøkkelord: Utmerket for eksakte treff, men har problemer med synonymer eller nyanserte betydninger.
Se for deg at du søker etter «beste bil for familieturer». Et semantisk søk kan vise SUV-er, mens et nøkkelordsøk kanskje bare viser artikler som inneholder «familie» og «tur». Hva om du ønsker begge deler?
Introduksjon til hybridsøk
Hybridsøk kombinerer styrkene til semantisk søk (vektorsøk) og nøkkelordsøk (BM25-søk). Det henter resultater basert på både konseptuell likhet og eksakt termmatching, og kombinerer dem deretter på en intelligent måte.
Dette gir mer omfattende og relevante resultater, særlig for komplekse eller tvetydige søk.
Weaviates `with_hybrid`
Hybridsøk kombinerer styrkene til semantiske søk og nøkkelordsøk. Weaviates .with_hybrid()-operator gjør dette enkelt. Den tar imot både et søk og en alpha-parameter som styrer kombinasjonen:
alpha = 0: Rent nøkkelordsøkalpha = 1: Rent semantisk søkalpha = 0.5: Lik kombinasjon (standard)
Eksperimenter med dette:
import weaviate
import os
# Connect to your Weaviate instance
client = weaviate.Client(
url=os.getenv("WEAVIATE_URL", "http://localhost:8080")
)
# Make sure you have an 'Article' class with 'title' and 'content' properties
# and some data imported for this to work!
query = "AI tools for data analysis" # Hybrid query text
alpha_value = 0.7 # 0.7 for more semantic weighting
response = client.query.get(
"Article",
["title", "content", "_additional {score, id}"] # Request score & ID
).with_hybrid(
query=query,
alpha=alpha_value
).with_limit(3).do()
print(f"Hybrid Search Results (alpha={alpha_value}):")
for item in response["data"]["Get"]["Article"]:
# The 'score' here is the hybrid score
print(f"- {item['title']} (Score: {item['_additional']['score']:.2f})")Forstå resultatsammenslåing (RRF)
Når du utfører et hybridsøk, trenger Weaviate en måte å kombinere rangeringene fra både det semantiske søket og nøkkelordsøket til én samlet liste. Dette gjøres ofte ved hjelp av en algoritme som Reciprocal Rank Fusion (RRF).
RRF er en smart metode som tildeler hvert dokument en poengsum basert på plasseringen i de individuelle søkeresultatene. Dokumenter som rangerer høyt i både semantiske søk og nøkkelordsøk, får en betydelig høyere endelig poengsum.
Fordeler med hybridsøk
Hybridsøk har flere fordeler:
- Bedre relevans: Fanger opp både eksakte treff og konseptuelt lignende elementer.
- Robusthet: Fungerer godt selv med korte, tvetydige eller sjeldne søk.
- Brukertilfredshet: Gir mer omfattende og nyttige søkeresultater.
Dette er en viktig teknikk for å bygge avanserte søkeopplevelser i KI-applikasjoner.
Test kunnskapene dine
Hybridsøk kombinerer semantiske søk og nøkkelordsøk. Hvilken parameter i Weaviates .with_hybrid()-operator styrer balansen mellom disse to søketypene?
Oppsummering av avansert søk
Godt jobbet! Du behersker nå avanserte søketeknikker i Weaviate. Vi har gått gjennom:
- Semantisk søk: Basert på betydning og vektorlikhet.
- Nøkkelordsøk: Bruk av BM25 for eksakt termmatching.
- Hybridsøk: Kombinerer begge for bedre relevans, styrt av
alpha-parameteren.
Disse kraftige verktøyene hjelper deg med å bygge mer intelligente og robuste søkeapplikasjoner. Fortsett å eksperimentere med ulike søketyper og alpha-verdier!
Lær deg Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Semantisk søk og hybridsøk» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Vektordatabaser: Pinecone, Weaviate og pgvector, inkludert «Semantisk søk og hybridsøk», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.
Hva lærer jeg i «Semantisk søk og hybridsøk»?
Implementer avanserte søketeknikker som kombinerer vektorsimilaritet med nøkkelordsamsvar for bedre resultater. Du øver på Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Vektordatabaser: Pinecone, Weaviate og pgvector?
Ingen tidligere erfaring er nødvendig. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Semantisk søk og hybridsøk»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Vektordatabaser: Pinecone, Weaviate og pgvector-leksjonen?
Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Semantisk søk og hybridsøk
- Bruke Weaviate-moduler
- Strategier for sikkerhetskopiering og gjenoppretting
- Flerleietakermodell i Weaviate