Rumah > rangka kerja php > Workerman > teks badan

Bagaimana untuk melaksanakan carian segera dan fungsi auto-lengkap melalui rangka kerja Webman?

WBOY
Lepaskan: 2023-07-09 11:46:36
asal
809 orang telah melayarinya

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>
Salin selepas log masuk

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
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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:

  • Antara muka carian: http://localhost:8080/search?keyword=Keywords
  • Antara muka auto-lengkap: http://localhost:8080 /autocomplete?keyword=Keywords

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!