1

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

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

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

4

1 回答 1

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
        }]
    };

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

于 2019-03-11T05:13:01.973 回答