Bool Joint Sorgu: Olmalı, olmalı, must_not
"BMW ile içerik, ama etikette değil" gibi bir şey talep etmek istiyorsak, bool federated query kullanmamız gerekiyor.
Ortak sorgu üç anahtar kelime kullanacak: gerekli, olmalı, must_not.
Bu üçü bu şekilde anlaşılabilir
must: Belge koşulları tam olarak yansıtmalıdır
should: birden fazla koşulu olmalı ve en az bir koşul sağlanırsa, bu belge de
must_not:Belge kriterlere uymamalıdır
Resmi web sitesi tanıtımı:https://www.elastic.co/guide/cn/ ... bining-filters.html
DSL sorgusu
match_all Sorgu
Tüm belgeler sorgulanabilir ve bu varsayılan ifadedir ve sorgu koşulları olmadan.
Bu sorgu genellikle filtreleri birleştirmek için kullanılır. Örneğin, tüm posta kutularını almanız gerekiyor ve tüm belge ilgisi aynıdır, yani aldığınız _score 1.
Maç sorgusu
Eşleşme sorgusu, tam metin ya da tam bir sorgu gerekse olmasa da tam bir sorgu gerekse de kullanılan standart bir sorgudur.
Tam metin alanını sorgulamak için match kullanırsanız, sorgu karakterlerini gerçek sorgudan önce analiz cihazı kullanır:
Eşleşme altında tam bir değer belirlerseniz, bir sayı, tarih, boolean veya not_analyzed dizeyiyle karşılaştığında verilen değeri arayacaktır:
İpucu: Tam eşleşme araması yaparken, filtre ifadeleri verileri önbellediği için filtre ifadelerini kullanmak en iyisidir.
Bir eşleşme sorgusu yalnızca tam bir alanı belirten bir değeri arayabilir ve yapmanız gereken tek şey sözdizimi hatalarından kaçınmak için doğru alan adını belirtmektir.
multi_match Sorgu
multi_match sorgu, eşleşen bir sorguya göre aynı anda birden fazla alanda arama yapmanızı ve aynı anda birden fazla alanda bir alanı aramanızı sağlar:
bool sorgusu
Bool sorguları, bool filtrelemeye benzerdir ve birden fazla sorgu maddesini birleştirmek için kullanılır. Fark şu ki, bool filtresi doğrudan eşleşmenin başarılı olup olmadığını verebilirken, bool sorgusu her sorgu cümlesinin _score'sini (korelasyon puanını) hesaplar.
must:: 查询指定文档一定要被包含。 must_not:: Sorgu belirtilen belgeler dahil edilmemelidir.
should:: 查询指定文档,有则可以为文档相关性加分。
Aşağıdaki sorgu, başlık alanında "nasıl milyonlar kazanılır" ifadesi içerdiğini ve "tag" alanının spam olarak işaretlenmediğini görecektir. Eğer "yıldızlı" olarak etiketleniyorsa veya 2014'ten önce çıkış tarihi varsa, bu eşleşen belgeler benzer sitelerden daha yüksek seviyede olacaktır:
İpucu: Bool sorgusunun altında 'must cümle'i yoksa, en az bir 'should cümle'i olmalıdır. Ancak zorunlu maddesi varsa, sorgu ihtiyaç maddesi olmadan da yapılabilir.
Wildcards sorgusu
Standart kabuk joker sorguları kullanın
Aşağıdaki sorgu, W1F 7HW ve W2F 8HW içeren belgelerle eşleşiyor:
Örneğin, ana bilgisayar adı için aşağıdaki sorgu, aşağıdaki shell joker kartıyla eşleşir:
Regexp sorgusu
Diyelim ki sadece W ile başlayan ve ardından numaralarla başlayan posta kodlarını eşleştirmek istiyorsunuz. Regexp sorguları kullanmak daha karmaşık desenler yazmanızı sağlar:
Bu düzenli ifade, giridin W ile başlaması, ardından 0'dan 9'a kadar bir sayı ve ardından bir veya daha fazla karakter gelmesi gerektiğini belirtir.
Aşağıdaki örnek tüm düzenli başlar wxopen ile
önek sorgusu
Hangi karakterle başlar, ön ek daha basit kullanabilirsin, aşağıdaki örnekte olduğu gibi:
İfade Eşleştirme
Yakında birkaç kelime bulmanız gerektiğinde match_phrase sorgu kullanırsınız:
Eşleşme sorgularına benzer şekilde, match_phrase sorgu önce sorgu dizesini ayrıştırarak terimler listesini oluşturur. Tüm girişleri arayacak, Ancak, yalnızca tüm arama terimlerini içeren belgeler saklanır ve terimlerin konumları bitişik olmalıdır. Quick Fox ifadesi için yapılan bir sorgu eşleşmeyecek Hiçbir dokümantasyonumuz birbirine bitişik hızlı ve kutu girişleri içermediği için. match_phrase sorgu, şu tür ifadelerle eşleşen sorgu olarak da yazılabilir:
|