Javascript node.js目录搜索实现

Javascript node.js目录搜索实现,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我的问题是从我的web目录中实现一些简单的搜索和下拉建议。诸如此类 现在,我的所有项目都存储在items.xml文件中,如: <?xml version="1.0" encoding="UTF-8"?> <catalog_list> <catalog change_list="id,parent_id,title" status="new" id="13642"> <id>13642</id> &

我的问题是从我的web目录中实现一些简单的搜索和下拉建议。诸如此类

现在,我的所有项目都存储在items.xml文件中,如:

<?xml version="1.0" encoding="UTF-8"?>
<catalog_list>
    <catalog change_list="id,parent_id,title" status="new" id="13642">
        <id>13642</id>
        <parent_id>00001</parent_id>
        <title>ITEM1</title>
    </catalog>
    <catalog change_list="id,parent_id,title" status="new" id="13634">
        <id>13634</id>
        <parent_id>09851</parent_id>
        <title>ITEM2</title>
    </catalog>
    <catalog change_list="id,parent_id,title" status="new" id="13635">
        <id>13635</id>
        <parent_id>09851</parent_id>
        <title>ITEM3</title>
        </catalog>
......

13642
00001
项目1
13634
09851
项目2
13635
09851
项目3
......
其中parent_id键引用description.xml中的id和项目描述。 因此,我认为将所有文件解析到我的mongoDB(因此我将有两个对应的表),并在我的项目订单页面模板中使用db(请求一些包含图像、说明、价格等的字段)。也许我认为我错了,请纠正我


但是我不知道如何处理我的搜索实现,我是否应该在每个用户按键时对我的mongoDB做出响应(onkeyUp())事件?在我看来,它是如此丑陋和缓慢。也许我可以为NODE.JS使用一些索引库?

是的,您需要对您的数据库或XML文件进行查询,以便进行每次搜索。您可以在键入时只查看最后的匹配项来优化它。例如,任何匹配“free”的项都将匹配“fre”和“fr”…keyup事件足以处理此问题,但不要在每个keyup上执行处理程序(即提前返回),而是使用延迟来等待更多的keyup事件,在延迟之后,如果查询已更改,请首先取消任何以前发送的、尚未完成的请求,然后使用更改的查询发送新请求。您有多少项?峰值流量有多少?我的目录中有大约3000项,因此需要用户输入并与我的mongoDB中的两个值进行比较:with name和with item uniqueId。