Elastic Search bir dizgiyi varsayılan olarak dizine eklediğinde, genellikle bunları tokenlere ayırır, örneğin: "Fox, duvarın üzerinden atla", "Fox", "jump", "over" gibi tek tek kelimelerle belirtilir. , "duvar".
Yani bu ne yapıyor? Belgelerinizi Lucene Sorgusu'nu kullanarak arayacak olursanız, istediğiniz dizeyi alamayabilirsiniz çünkü Elastic Search otomatik olarak tüm dizgenin yerine jetonize edilmiş kelimeleri arar, böylece arama sonuçlarınız ciddi şekilde etkilenir. Eğer "duvarın üzerinden Fox atlama" için arama eğer
Örneğin, size herhangi bir sonuç almazsınız. Bunun yerine "Fox" aranması size bir sonuç verecektir.
API Analiz veya terim entire üzerinde istatistiksel yönleriyle yapmak istediğinizde düzgün özellikle yararlı olan tam dizeleri için arama böylece , endeksli dize tokenize için değil Elastik Arama söyler analiz Teller.
Tokenlayıcılar sadece dizeleri tek tek sözcüklerle belirtmek ve bunları Elastic Search'te saklamak. Belirtildiği gibi, bu belirteçler Arama API'sı kullanılarak sorgulanabilir.
Filtreler Belirttiğiniz belirli koşullar altında sorgulanan sonucunuzun bir alt kümesini oluşturun, böylece arama sonuçlarınızda gerek duymadığınızdan gerekeni ayırmanıza yardımcı olun.
"Fox duvarın üzerinden zıplayarak" yapabilir ve bir sorgu olarak yaparsanız doğru sonuçları size döndürür: client.prepareSearch(). SetQuery (QueryBuilders.matchQuery (NODE_PATH_TO_SEARCH) "Fox duvarın üzerinden atlamak")). Benim için sorgu dizesinde geçen kelimelere dayalı AND sonuçları görünüyor – Adrian