feat:将服务器es搜索改为本地搜索

This commit is contained in:
fanxb 2020-02-01 23:34:07 +08:00
parent 90957f2864
commit 1f2873cae1
2 changed files with 45 additions and 8 deletions

View File

@ -2,6 +2,7 @@ import React from "react";
import { Input, Select, Empty } from "antd";
import styles from "./index.module.less";
import httpUtil from "../../util/httpUtil";
import { keySearch } from "../../util/cacheUtil";
class Search extends React.Component {
constructor(props) {
@ -43,8 +44,8 @@ class Search extends React.Component {
return;
}
this.clearTimer();
this.timer = setTimeout(() => {
this.search(content);
this.timer = setTimeout(async () => {
await this.search(content);
this.clearTimer();
}, 200);
}
@ -58,16 +59,18 @@ class Search extends React.Component {
/**
* 关键词检索
*/
search(content) {
async search(content) {
if (content.length === 0) {
this.setState({ resultList: [] });
return;
}
httpUtil
.get(
"/bookmark/searchUserBookmark?content=" + encodeURIComponent(content)
)
.then(res => this.setState({ resultList: res }));
// httpUtil
// .get(
// "/bookmark/searchUserBookmark?content=" + encodeURIComponent(content)
// )
// .then(res => this.setState({ resultList: res }));
let resultList = await keySearch(content);
this.setState({ resultList });
}
/**

View File

@ -179,3 +179,37 @@ export async function moveNode(info) {
await updateCurrentChangeTime();
return body;
}
/**
* 关键词搜索方法
* @param {*} content
*/
export async function keySearch(content) {
let time1 = Date.now();
content = content.toLocaleLowerCase().trim();
let res = [];
let arrs = Object.values(window[TREE_LIST_KEY]);
for (let i1 = 0, length1 = arrs.length; i1 < length1; i1++) {
for (let i2 = 0, length2 = arrs[i1].length; i2 < length2; i2++) {
let item = arrs[i1][i2];
if (item.type === 1) {
continue;
}
if (!item.lowName) {
item.lowName = item.name.toLocaleLowerCase();
}
if (!item.lowUrl) {
item.lowUrl = item.url.toLocaleLowerCase();
}
if (item.name.indexOf(content) > -1 || item.url.indexOf(content) > -1) {
res.push(item);
if (res.length >= 12) {
console.info("搜索耗时:" + (Date.now() - time1));
return res;
}
}
}
}
console.info("搜索耗时:" + (Date.now() - time1));
return res;
}