Maison >cadre php >Workerman >Comment implémenter des fonctions de recherche instantanée et d'auto-complétion via le framework Webman ?

Comment implémenter des fonctions de recherche instantanée et d'auto-complétion via le framework Webman ?

WBOY
WBOYoriginal
2023-07-09 11:46:36862parcourir

Comment implémenter des fonctions de recherche instantanée et de saisie semi-automatique via le framework Webman ?

Avec le développement rapide d'Internet, nos exigences en matière d'expérience utilisateur des pages Web sont de plus en plus élevées. L'une des exigences importantes est la recherche instantanée et les fonctions de saisie semi-automatique. Lorsque l'utilisateur saisit des mots-clés dans la zone de saisie, la page peut rapidement fournir des résultats de recherche pertinents basés sur les mots-clés ou inviter automatiquement l'utilisateur à effectuer des saisies possibles. Dans cet article, nous présenterons comment utiliser le framework Webman pour réaliser ces deux fonctions.

Tout d'abord, nous devons introduire le framework Webman dans le projet. Ceci peut être réalisé en ajoutant les dépendances suivantes dans le fichier pom.xml du projet :

<dependency>
    <groupId>com.github.yuedeng</groupId>
    <artifactId>webman-spring-boot-starter</artifactId>
    <version>0.5.2</version>
</dependency>

Ensuite, nous devons configurer certains paramètres du framework Webman dans le fichier de configuration Spring Boot. Vous pouvez ajouter la configuration suivante dans le fichier 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

Dans la configuration ci-dessus, nous devons configurer la base de données et le cache Redis utilisés par le framework Webman. La base de données est utilisée pour stocker les données des résultats de recherche et Redis est utilisé pour stocker les données mises en cache pour la fonction de saisie semi-automatique.

Ensuite, nous devons créer une classe de service de recherche pour gérer la logique des entrées utilisateur et des résultats de recherche. Vous pouvez créer une classe appelée SearchService et ajouter le code suivant dans la classe :

@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;
    }
}

Dans le code ci-dessus, nous avons injecté une instance WebmanTemplate, qui est la classe principale fournie par le framework Webman pour interagir avec les sources de données et les caches. Dans la méthode de recherche, nous utilisons SearchQuery pour construire une requête de recherche, puis utilisons webmanTemplate pour effectuer l'opération de requête et convertissons les résultats de la recherche en liste pour le retour. Dans la méthode autoComplete, nous utilisons AutoCompleteQuery pour créer une requête de saisie semi-automatique, puis utilisons également webmanTemplate pour effectuer l'opération de requête et convertir les résultats de l'invite automatique en une liste de retour.

Enfin, nous devons gérer la demande de l'utilisateur dans le contrôleur. Vous pouvez créer une classe de contrôleur nommée SearchController et ajouter le code suivant à la classe :

@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);
    }
}

Dans le code ci-dessus, nous avons injecté l'instance SearchService et défini deux interfaces pour le traitement des demandes de recherche et la demande d'achèvement automatique. En passant le paramètre mot-clé dans la requête, le contrôleur appellera la méthode SearchService correspondante et renverra les résultats de la recherche ou les résultats automatiquement demandés.

À ce stade, nous avons terminé toutes les étapes pour utiliser le framework Webman pour implémenter des fonctions de recherche instantanée et de saisie semi-automatique. Ensuite, nous pouvons lancer l'application et tester nos fonctionnalités en accédant à l'URL suivante :

  • Interface de recherche : http://localhost:8080/search?keyword=Keywords
  • Interface d'auto-complétion : http://localhost:8080 /autocomplete?keyword=Keyword

Dans le test, nous pouvons voir qu'en fonction des mots-clés saisis, la page affichera rapidement les résultats de recherche correspondants ou les résultats automatiquement demandés.

Grâce à l'introduction de cet article, nous avons appris à utiliser le framework Webman pour implémenter des fonctions de recherche instantanée et de saisie semi-automatique. Grâce à l'application de ces fonctions, nous pouvons améliorer l'expérience utilisateur des pages Web et permettre aux utilisateurs de trouver plus facilement les informations dont ils ont besoin. En même temps, c'est aussi un exemple d'application du framework Webman, j'espère qu'il sera utile aux lecteurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn