gpt4 book ai didi

twitter-bootstrap - 如何使 Twitter Typeahead 精确匹配单词和短语

转载 作者:行者123 更新时间:2023-12-04 07:44:56 24 4
gpt4 key购买 nike

推特 Typeahead匹配短语中任何位置的任何单词,因此搜索“car”的结果可能来自具有匹配“car”的第二个单词的短语。例如,在带有名片的列表中搜索汽车时。名片出现,更糟糕的是它出现在汽车之前。 IE:

Search Term: Car
Suggestions:
Business Card
Car
Car Pool
Carbon

我希望它更像谷歌和推特(他们从不建议与从一开始就键入的内容不完全匹配的内容),其中键入的单词最相关,因此在键入 car 时 Car 会比 Business Card 更相关。

我希望它实际上只是停止匹配第二个单词,直到有人键入空格并开始第二个单词。所以在上面的例子中名片不会出现在列表中,除非我输入:
Business C

如何从键入搜索的开始停止匹配和建议不完全匹配的单词的这种行为。

另一种说法是如何阻止预输入在空间上进行标记或拆分。预输入总是从单词的开头匹配 (^),因此如果空格未被识别为单词边界,它将更符合 google 和 twitter 用户的预期。

谢谢你的帮助,
泰勒

更新 1。

我更新了我的数据集以返回一个具有值和标记的 Datum,以便 typeahead _transformDatum 方法不会通过在空格上拆分来标记标记。这很好用,现在可以按需要工作:

值(value)观:苹果、大猿

搜索词:Ap
建议:
苹果

这就是我要的。但现在有一个新问题。

ISSUE: 使用带有空格的搜索词时,不会返回任何建议。

所以现在当我输入“great”时,只要我输入一个空格,建议就会停止。:

搜索词:大(带空格)
建议:
(没有任何)

我认为 token 不能有空格。即使文档没有在问题中明确说明这一点:

The canonical form of a datum is an object with a value property and a tokens property. value is the string that represents the underlying value of the datum and tokens is a collection of strings that aid typeahead.js in matching datums with a given query.

最佳答案

恰当的是:

  matcher: function (item) {
if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) == 0) {
return true;
}
},

关于twitter-bootstrap - 如何使 Twitter Typeahead 精确匹配单词和短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com