Masalah: Perlu menjalankan pencarian saya sendiri secara terprogram dengan API Pencarian. Setiap hasil google yang saya temukan diarahkan untuk mengajar non-pengembang cara menggunakan modul dengan Tampilan tanpa hasil seperti yang saya inginkan.
Informasi:
- Menggunakan layanan basis data lokal alih-alih Solr atau lainnya.
- Apakah data tidak disimpan dalam database yang akan muncul di samping hasil lainnya.
- Konten akan dikelompokkan dalam tab "ketik".
- Tidak menggunakan Tampilan karena berbagai alasan.
- Apakah Facet API diaktifkan tetapi tidak ada petunjuk bagaimana menggunakannya juga.
Mengapa: Karena saya ingin halaman pencarian berada di / pencarian situs dan tanpa / simpul / kata kunci setelah argumen halaman. Juga akan diminta untuk menyesuaikan ini di luar ruang lingkup modul lain yang mungkin menyediakan jenis fungsionalitas yang sama. Dan saya ingin belajar bagaimana melakukan ini tetapi belum menemukan tutorial atau wawasan lain tentang bagaimana mencapainya.
Sisanya: Saya telah membuat halaman pencarian saya dan di atasnya saya menjalankan pencarian dengan:
$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);
Variabel sesi diatur ketika formulir pencarian dikirimkan kemudian mengarahkan pengguna ke / pencarian situs untuk melakukan pencarian dan menunjukkan hasilnya.
Jika saya menghasilkan $ hasil, saya melihatnya array dengan informasi berbeda termasuk set hasil yang merupakan array id node dan skor mereka.
Saya bisa menjalankannya, meraih simpul dan menampilkan hasilnya sendiri tetapi saya pikir pasti ada beberapa metode lain untuk merender hasil pencarian. Saya belum menemukannya dan itulah masalahnya.
Saya telah mencari melalui berbagai kelas di Search API dan Facet API dan tidak dapat menemukan apa pun di dalamnya yang tampak seperti mereka akan membangun hasil keluaran.
Bantuan apa pun dengan ini akan dihargai.
Contoh hasil:
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
)
)
Jawaban:
Sudahkah Anda melihat modul halaman Pencarian API . Ini menggunakan modul API Pencarian dan membuat halaman pencarian kustom. Anda mungkin dapat melihat modul itu untuk mendapatkan petunjuk tentang bagaimana menerapkan apa yang Anda coba lakukan. Modul itu sendiri bahkan mungkin menyediakan banyak fungsi yang Anda cari.
sumber
Inilah solusi saya dalam sekitar 100 baris - sedikit lebih sederhana daripada halaman ...
sumber