在java中突出显示搜索关键字

时间:2013-09-12 09:49:53

标签: java solr

在我的任务中,我正在使用solr进行搜索。

  1. 它工作正常,并在结果标题中使用突出显示的关键字返回结果,片段大小为200。
  2. 当我点击结果时,标题会展开并显示整个结果。
  3. 我的问题是我需要在打开的结果中突出显示关键字。我怎样才能做到这一点?我可以用solr做,还是只需要在java中做?

2 个答案:

答案 0 :(得分:1)

以下两个链接可以帮助您:

更新答案:

一个简单的解决方案可能是迭代搜索的单词并在显示结果之前替换它们:

// warning: pseudcode ahead
List<String> newResults = new ArrayList<String>();
for(String result : search.getResults()) { // pseudocode, don't know the exact interface
  for(String word : searchQuery.split("\\s+")) {
    newResults.add(result.replaceAll(word, "<strong>" + word + "</strong>"));
  }
}

答案 1 :(得分:0)

不区分大小写的解决方案:

    String searchTerm="test", result="This is a TEST";
    Pattern pattern = Pattern.compile("(" + Pattern.quote(searchTerm.toLowerCase()) + ")",
            Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

    result = pattern.matcher(result).replaceAll("<strong>$1</strong>");

请参阅https://docs.oracle.com/javase/tutorial/essential/regex/pattern.html