如何忽略使用Fusejs的搜索中的某些字词?

时间:2019-03-08 11:11:16

标签: javascript performance fuse.js

我想使用fusejs创建一个搜索,其中一个实体或关键字可以有多个名称(别名)。在fusejs中,分数是根据用户输入来计算的,他/她可以输入任何名称。 在我的数据中,我只能有1个名字。 例如:“房屋”

[
     {"label": "House No. 436, Street 12, Phase 3"}
]

如果用户输入“房屋”,则效果很好,但是如果用户输入“地块编号”或“房屋编号”,“公寓编号”,“公寓编号”或任何此类单词,该怎么办。在这种情况下,计算出的分数将影响搜索结果。 请告诉我是否有解决办法。

1 个答案:

答案 0 :(得分:1)

我通过向每个对象添加包含所有别名的新数组解决了此问题。

[{"label": "House No. 436, Street 12, Phase 3", tags: ["Plot No", "Flat no", "Apartment no"]}]

,依此类推。然后,我将加权权重为0.7的加权搜索应用于变量label,将别名权重为0.3的加权搜索。

 keys: [{
            name: 'tags',
            weight: 0.3
        }, {
            name: 'label',
            weight: 0.7
        }]
    };

现在,如果用户输入任何关键字,将产生相同的影响,因此实际的搜索结果不会受到影响。