Sorun: Kendi aramalarımı Arama API'sı ile programlı olarak çalıştırmam gerekiyor. Bulduğum her google sonucu, geliştiricilere, modülün Görünümler ile nasıl kullanılacağı konusunda hiçbir sonuç olmadan nasıl kullanılacağını öğretmeye yöneliktir.
Bilgi:
- Solr veya başka herhangi bir yerel veritabanı servisini kullanarak.
- Diğer sonuçların yanında görünecek verileri veritabanında saklamayın.
- İçerik "tip" sekmelerinde gruplandırılacaktır.
- Görünümleri çeşitli nedenlerle kullanmamak.
- Facets API'yi etkinleştirin, ancak nasıl kullanılacağına dair hiçbir ipucu yok.
Neden: Çünkü sayfa aramadan sonra arama sayfasının / site-aramada ve / node / anahtar kelime olmadan olmasını istiyorum. Ayrıca, aynı işlevsellik sağlayabilecek diğer modüllerin kapsamı dışında da özelleştirilmesi istenecektir. Ve bunun nasıl yapılacağını öğrenmek istiyorum ancak nasıl yapılacağı hakkında herhangi bir ders ya da başka bir görüş bulamadım.
Gerisi: Arama sayfamı oluşturdum ve üzerinde aramayla çalışıyorum:
$term = $_SESSION['my-search']['term'];
$server = search_api_server_load('database');
$index = search_api_index_load('default_node_index');
$query = new SearchApiQuery($index);
$query->keys($term);
$query->fields(array('title','body:value'));
$srv= new SearchApiDbService($server);
$result = $srv->search($query);
Oturum değişkeni, bir arama formu gönderildiğinde ayarlanır, ardından kullanıcıyı arama yapmak ve sonuçları göstermek için / site aramasına yönlendirir.
Eğer $ sonuç çıktıysam, düğüm kimlikleri dizisi olan sonuç kümesini ve puanlarını içeren farklı bilgileri içeren bir dizi olduğunu görüyorum.
Bunları çalıştırabilir, düğümü kapıp sonuçları kendim gösterebilirim ancak aramanın sonuçlarını oluşturmak için başka bir yöntem olması gerektiğini düşünüyorum. Yine de bulamadım ve sorun bu.
Search API ve Facet API'deki farklı sınıfları inceledim ve sonuç çıktısı oluşturacak gibi görünen hiçbir şey bulamıyorum.
Bununla ilgili herhangi bir yardım takdir edilecektir.
Sonuçlar örneği:
Array
(
[result count] => 11
[results] => Array
(
[37] => Array
(
[id] => 37
[score] => 15.7503318786621
)
[39] => Array
(
[id] => 39
[score] => 7
)
[40] => Array
(
[id] => 40
[score] => 5
)
[31] => Array
(
[id] => 31
[score] => 4
)
[33] => Array
(
[id] => 33
[score] => 1
)
[36] => Array
(
[id] => 36
[score] => 1
)
[1] => Array
(
[id] => 1
[score] => 1
)
[15] => Array
(
[id] => 15
[score] => 1
)
[16] => Array
(
[id] => 16
[score] => 1
)
[27] => Array
(
[id] => 27
[score] => 1
)
[35] => Array
(
[id] => 35
[score] => 0.980873763561249
)
)
[warnings] => Array
(
)
[ignored] => Array
(
)
[performance] => Array
(
[complete] => 0.0033111572265625
[preprocessing] => 0.00053095817565918
[execution] => 0.0027379989624023
[postprocessing] => 4.2200088500977E-5
)
)