Rumah > Artikel > rangka kerja php > Bagaimana untuk melaksanakan carian segera dan fungsi auto-lengkap melalui rangka kerja Webman?
Bagaimana untuk melaksanakan fungsi carian segera dan pelengkapan automatik melalui rangka kerja Webman?
Dengan perkembangan pesat Internet, keperluan kami untuk pengalaman pengguna halaman web semakin tinggi dan lebih tinggi. Salah satu keperluan penting ialah carian segera dan fungsi auto-lengkap. Apabila pengguna memasukkan kata kunci dalam kotak input, halaman boleh memberikan hasil carian yang berkaitan dengan cepat berdasarkan kata kunci atau secara automatik menggesa pengguna untuk kemungkinan input. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Webman untuk mencapai kedua-dua fungsi ini.
Pertama, kita perlu memperkenalkan rangka kerja Webman ke dalam projek. Ini boleh dicapai dengan menambah kebergantungan berikut dalam fail pom.xml projek:
<dependency> <groupId>com.github.yuedeng</groupId> <artifactId>webman-spring-boot-starter</artifactId> <version>0.5.2</version> </dependency>
Seterusnya, kita perlu mengkonfigurasi beberapa parameter rangka kerja Webman dalam fail konfigurasi Spring Boot. Anda boleh menambah konfigurasi berikut dalam fail application.properties:
# 配置Webman框架的数据源 webman.datasource.driver-class-name=com.mysql.cj.jdbc.Driver webman.datasource.url=jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai webman.datasource.username=root webman.datasource.password=root # 配置Webman框架的Redis缓存 webman.cache.type=redis webman.cache.redis.host=localhost webman.cache.redis.port=6379 webman.cache.redis.password= webman.cache.redis.database=0
Dalam konfigurasi di atas, kami perlu mengkonfigurasi pangkalan data dan cache Redis yang digunakan oleh rangka kerja Webman. Pangkalan data digunakan untuk menyimpan data hasil carian, dan Redis digunakan untuk menyimpan data cache untuk fungsi autolengkap.
Seterusnya, kita perlu mencipta kelas perkhidmatan carian untuk mengendalikan logik input pengguna dan hasil carian. Anda boleh membuat kelas yang dipanggil SearchService dan menambah kod berikut dalam kelas:
@Service public class SearchService { @Autowired private WebmanTemplate webmanTemplate; public List<String> search(String keyword) { SearchQuery query = new SearchQuery("your_database_table_name"); query.addFilter("content", Operator.LIKE, keyword); query.setLimit(10); SearchResponse response = webmanTemplate.search(query); List<String> results = new ArrayList<>(); for (SearchHit hit : response.getHits()) { results.add(hit.getSource().get("content").toString()); } return results; } public List<String> autoComplete(String keyword) { AutoCompleteQuery query = new AutoCompleteQuery("your_redis_key_prefix", keyword); query.setLimit(10); AutoCompleteResponse response = webmanTemplate.autoComplete(query); List<String> results = new ArrayList<>(); for (AutoCompleteHit hit : response.getHits()) { results.add(hit.getValue()); } return results; } }
Dalam kod di atas, kami telah menyuntik contoh WebmanTemplate, iaitu kelas teras yang disediakan oleh rangka kerja Webman untuk berinteraksi dengan sumber data dan cache. Dalam kaedah carian, kami menggunakan SearchQuery untuk membina pertanyaan carian, kemudian menggunakan webmanTemplate untuk melaksanakan operasi pertanyaan dan menukar hasil carian kepada Senarai untuk dipulangkan. Dalam kaedah autoComplete, kami menggunakan AutoCompleteQuery untuk membina pertanyaan autolengkap, dan kemudian juga menggunakan webmanTemplate untuk melaksanakan operasi pertanyaan dan menukar hasil auto-prompt kepada Senarai untuk pemulangan.
Akhir sekali, kita perlu mengendalikan permintaan pengguna dalam pengawal. Anda boleh membuat kelas pengawal bernama SearchController dan menambah kod berikut pada kelas:
@RestController public class SearchController { @Autowired private SearchService searchService; @GetMapping("/search") public List<String> search(@RequestParam("keyword") String keyword) { return searchService.search(keyword); } @GetMapping("/autocomplete") public List<String> autoComplete(@RequestParam("keyword") String keyword) { return searchService.autoComplete(keyword); } }
Dalam kod di atas, kami menyuntik contoh SearchService dan menentukan dua antara muka untuk memproses permintaan carian dan penyiapan automatik. Dengan menghantar parameter kata kunci dalam permintaan, pengawal akan memanggil kaedah SearchService yang sepadan dan mengembalikan hasil carian atau hasil yang digesa secara automatik.
Pada ketika ini, kami telah menyelesaikan semua langkah untuk menggunakan rangka kerja Webman untuk melaksanakan fungsi carian segera dan autolengkap. Seterusnya, kami boleh melancarkan aplikasi dan menguji kefungsian kami dengan mengakses URL berikut:
Dalam ujian, kita dapat melihat bahawa mengikut kata kunci yang dimasukkan, halaman akan memaparkan dengan cepat hasil carian yang sepadan atau hasil yang digesa secara automatik.
Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan rangka kerja Webman untuk melaksanakan carian segera dan fungsi autolengkap. Melalui aplikasi fungsi ini, kami dapat meningkatkan pengalaman pengguna halaman web dan membolehkan pengguna mencari maklumat yang mereka perlukan dengan lebih mudah. Pada masa yang sama, ini juga merupakan contoh aplikasi rangka kerja Webman saya harap ia akan membantu pembaca.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan carian segera dan fungsi auto-lengkap melalui rangka kerja Webman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!