# baidu-project-v2 **Repository Path**: ZZP_Fight/baidu-project-v2 ## Basic Information - **Project Name**: baidu-project-v2 - **Description**: 百度项目V2版,baidu-search-project重构 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2021-02-12 - **Last Updated**: 2023-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # baidu-project-v2 使用Element-UI仿百度项目 ### 介绍 百度项目V2版,baidu-search-project重构,[之前的仿百度项目](https://gitee.com/ZZP_Fight/baidu-search-project),使用到最近学的知识和复习一下elasticsearch > 项目在运用时就会异步将数据库的数据导入es,所以要先输入文末的命令到kibana ### 工具 jdk11-ali、elasticsearch+分词器、vue-cli2+ts、gradle(之前是maven) > es(elasticsearch)需要安装,它的安装也很简单可以自行百度,当然也得按装一下Kibana。es还需要安装分词插件 > `elasticsearch-analysis-ik`,`HanLP以及它的词库`,`pinyin分词器`。需要在kibana输入的命令可以看文末。 ### 效果展示 > 有没有显示的就是尚未做的功能(也不一定会去做,哈哈) * 页面 ![img.png](img/img1.png) > 仿照最近的百度页面。大部分样式是有的,有些样式和功能是没有的(因为懒,【doge】) > 输入拼音后会出现自动补全的下拉框(中文也行,**注意**:需要es存有对应的数据才行) * 登录 ![img](img/img2.png) ![img](img/img3.png) > 这里是和之前的一样只是通过vuex来保存用户名(不同的地方是使用了ts的方式),并没有连服务器和用户名校验,用户名和密码都可以乱填(只有登录按钮有效doge) > 登录后点击退出还原之前的状态(也只有退出doge) * 搜索页面 ![img](img/img4.png) > 点击百度一下之后就会跳转到当前页面,然后搜索的关键词会在下面的标题和内容里高亮(也就是红色,有做分页,但是我的数据量太少了,达不到第二页的要求doge 哈哈!) ### 设置分词命令 > 在开启项目之前先在kibana输入以下命令 ``` PUT news { "settings": { "analysis": { "analyzer": { "tag_analyzer": { "type": "custom", "char_filter": [ "html_strip" ], "tokenizer": "keyword", "filter": ["pinyin_filter", "completed_filter","unique"] }, "tag_search_anaylyzer": { "type": "custom", "char_filter": [ "html_strip" ], "tokenizer": "keyword", "filter": ["lowercase"] } }, "filter": { "completed_filter": { "type":"edge_ngram", "min_gram":1, "max_gram":15 }, "pinyin_filter": { "type":"pinyin", "keep_first_letter": true, "keep_full_pinyin": false, "keep_joined_full_pinyin": true, "keep_none_chinese_in_joined_full_pinyin":true, "none_chinese_pinyin_tokenize": false, "keep_original": true, "remove_duplicated_term": true } } } } } PUT news/_mapping { "dynamic":false, "properties": { "id":{ "type":"long" }, "title": { "type": "text", "analyzer": "hanlp_nlp" }, "content": { "type": "text", "analyzer": "hanlp_nlp" }, "tags": { "type": "completion", "analyzer": "tag_analyzer", "search_analyzer":"tag_search_anaylyzer" } } } # 这个是重来的时候才使用 DELETE news ```