列出给定标签的所有建议字段

时间:2013-09-12 20:50:06

标签: php algorithm

我的字段有First Name这样的标签。现在我有一个他选择或输入的用户定义字段。一旦他提交了键入的标签,我想给他一个他可以映射到的建议字段列表。

因此,如果用户提交了字段标签:NameFirstHello将获得First NameName的建议字段First

我不是要求代码。我只需要一个我可以遵循的算法来做到这一点。

注意:我不能使用简单的 CONTAINS 方法,因为用户提交的标签中可能有两三个字,我需要将这些字匹配到现有字段

任何映射算法都将受到赞赏。我需要的只是算法的名称,我会自己弄清楚。

建议字段的逻辑:

如果它的完全匹配显示在顶部 如果一个单词只匹配显示在中间 如果几个字符连续匹配,则将它们全部放在底部

1 个答案:

答案 0 :(得分:1)

首先,您应该将用户输入拆分为单词数组。

之后,您可以使用近似搜索(例如Levenshtein distance)来计算用户输入中的每个标签与字段之间的距离。建议距离小于某个阈值并按结果距离递增的字段。

注意,原始的Levenshtein距离算法计算整个弦之间的距离。如果要将“名称”与“名字”匹配,则应使用与任何子字符串匹配的修改。我在C#中有一个示例代码,希望它可以帮助您实现PHP:http:// ideone.com/V0avT4