【问题标题】:Bold the user input in autocompletion stuff在自动完成内容中加粗用户输入
【发布时间】:2012-03-30 02:58:13
【问题描述】:

只是想知道你会怎么做。

我有一个网络服务,允许我在他编写用户地址时填写它。 当显示建议时,我希望与用户输入匹配的建议标签部分用粗体标签包围。

我希望“匹配”更聪明,而不仅仅是简单/替换,因为我们使用的 WS 也很聪明,但我没有那个代码。

例如:

Input: 3 OxFôr sTrE
Ws result: 3 Oxford Street
Formatted: <b>3 Oxford Stre</b>et
Formatted: [bold]3 Oxford Stre[/bold]et

我可以用 JS 或 Java 来做。 我宁愿用 JS 做,但用 Java 或许 Lucene 能帮上忙?

你知道如何处理它吗?

【问题讨论】:

  • 那么你想要 Java 还是 JavaScript?一个是客户端显示找到的表示,另一个是服务器端后端find开始的可能值。这里有两个不同的问题/问题;请专注于一个。
  • @pst 不,只有一个问题。在这两种情况下,我都不需要服务器端后端来查找可能的值。你也可以给我你的 python、ruby、bat 或 sh 解决方案

标签: java javascript algorithm autocomplete lucene


【解决方案1】:

使用搜索引擎或自定义数据结构使用 NGrams 为您的文本编制索引。我通过使用 NGrams 索引大约 10 亿个查询词来实现自动推荐的东西,然后在显示时我根据每个键入查询的频率对它们进行排序。 Lucene/Solr 可以在这里为您提供帮助。如果您使用 Lucene/Solr,则默认情况下突出显示的内容(如您所问)将包含在标签中,您还可以利用 Lucene/Solr 提供的 ngram 索引功能

LinkedIn Engineering 最近开源了 Cleo(LinkedIn 预输入搜索背后的开源技术):Link

LinkedIn 的好东西。根据您的需要查看巧妙的匹配和突出显示内容

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2014-01-25
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多