从网页中查找相关关键字

时间:2011-06-08 08:02:04

标签: java javascript search lucene

  • 一方面,我有一个提供一组关键字的Java CMS
  • 另一方面,我有一个JavaScript Bookmarklet来策划网页

是否有一种巧妙的方法可以将我的关键字组与网页内容进行交叉/匹配?

John Resign解释in some articles如何在词典中压缩然后搜索但看起来真的很复杂。

事实上,我正在寻找一种聪明的Java或JavaScript算法来有效地匹配文本中的字符串集。

我的问题非常接近这个问题: Effective search on a small text

但是,

  • 我想在1个文本而不是文本数据库
  • 上进行
  • 使用lucene进行索引很有效,但我不知道如何有效地将索引条款与我的所有关键字进行匹配。

2 个答案:

答案 0 :(得分:0)

您可以像这样使用java:

Set<String> keywords = new TreeSet<String>(Arrays.asList("keyword1", "keyword2"));
String content = "your doc here with keyword1 etc";
Set<String> contentWords = new TreeSet<String>(Arrays.asList(content.split(" ")));
contentWords.retainAll(keywords); 
// now contentWords contains only words from keywords, in this case just "keyword1"

如果您想从关键字的内容中获取所有字词,请改用:

contentWords.removeAll(keywords);

使用TreeSet可以让它表现得非常好。

这段编译和运行的代码已经过简化,仅供参考。您必须从数据库等加载关键字并从其他任何地方加载您的内容。

答案 1 :(得分:0)

我们已经基于Lucene索引Set进行了一些概念验证。

  • 处理所有语言/文字问题
  • 很快就会出现

但是一个好的答案需要大量的相关内容。所以结果有时很奇怪。它是服务器端......