【问题标题】:Highlight search keyword in java在java中突出显示搜索关键字
【发布时间】:2016-09-10 19:43:42
【问题描述】:

在我的作业中,我正在使用 solr 进行搜索。

  1. 它工作正常并返回结果标题中带有突出显示的关键字且片段大小为 200 的结果。
  2. 当我单击结果时,标题会展开并显示整个结果。

我的问题是我还需要在打开的结果中突出显示关键字。我怎样才能做到这一点?我可以用 solr 做还是只需要用 java 做?

【问题讨论】:

    标签: java solr


    【解决方案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>"));
      }
    }
    

    【讨论】:

    • 我已经这样做了,它工作正常......但它在 solr 中......但我有一些带有 solr 返回的搜索关键字的文本......我需要使用 java 突出显示这些单词。 .
    【解决方案2】:

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

        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

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 1970-01-01
      • 2011-02-14
      • 2012-02-16
      • 2014-03-07
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2016-06-16
      相关资源
      最近更新 更多