javascript - 如何使用 Fusejs 忽略搜索中的某些术语?

标签 javascript performance fuse.js

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

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

如果用户输入“house”,它会完美运行,但如果用户输入 Plot no、home no、apartment no、flat no 或任何此类词会怎样。在这种情况下,计算的分数将影响搜索结果。 如果有任何解决办法,请告诉我。

最佳答案

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

[{"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
        }]
    };

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

关于javascript - 如何使用 Fusejs 忽略搜索中的某些术语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55061997/

相关文章:

javascript - Sprite 不显示在 html5 Canvas 上

sql - 阅读 Oracle 解释计划

Java Collections.unmodifiableList() 时间复杂度

typescript - 为什么 TypeScript 编译器找不到时 Webpack 找不到模块?

javascript - 如何设置 fuse.js 选项

javascript - jQuery slick.js 轮播 : add items w/o changing current element

javascript - 我应该在 JavaScript 中声明更多函数还是将开关参数传递给一个函数?

javascript - 如何在 Node.js 上使用 JS 库?

javascript - jQuery 验证 : display validation messages that contain field name?

c++ - R 中的算术在数字上比在整数上更快。这是怎么回事?