gpt4 book ai didi

java - Java 中的字符串比较,我应该使用哪种算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:39 26 4
gpt4 key购买 nike

我需要将用户将搜索的产品名称与可用产品进行比较。我将产品名称存储在 MySQL 数据库中。我正在收集所有名称,并在我的 Java 服务启动时将其发送到应用程序级别 (Java)。

现在我的字符串比较场景是这样的:

Available product names:
1) Samsung galaxy s2
2) Samsung galaxy s3
3) Samsung galaxy s4

User input1: galaxy s3 - Then in this scenario my 2nd result should come first as it has 2 matching keywords 'galaxy' and 's3', where other 2 has only 1 matching keyword 'galaxy'.

User input2: s3 - Then here only 2nd result should come, because the other 2 has no matching key word.

User input3: samsung - Then here all three results should come.

有人可以建议在 Java 中哪种算法适合这个吗?还有一件事,将所有产品名称从 MySQL 带到应用程序级别 (java) 是正确的方法吗?或者我也可以在 MySQL 级别进行吗? (PS:我不想在 MySQL 端使用 like 查询,因为它会很慢)

最佳答案

给你一些在项目中开发搜索功能的提示:

  • 使用Lucene , 只需使用 API 或下载源代码并使用自定义评分算法。
  • 在您自己的应用程序中开发term weightingstring similarity 算法,这将提高您的搜索准确性。 (这两个概念你自己去搜一下,或者看看Information Retrieval这本书,对你帮助很大。)
  • 使用mysql SELECT ... FROM ... WHERE field LIKE '%keyword%' 模糊搜索(记得先创建索引),并应用上面的term weighting字符串相似度算法对查询结果进行排名。

关于java - Java 中的字符串比较,我应该使用哪种算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186311/

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