diff --git a/src/main/java/jp/sf/fess/helper/ViewHelper.java b/src/main/java/jp/sf/fess/helper/ViewHelper.java index 5f5d61063..c1a1e460a 100644 --- a/src/main/java/jp/sf/fess/helper/ViewHelper.java +++ b/src/main/java/jp/sf/fess/helper/ViewHelper.java @@ -80,6 +80,8 @@ public class ViewHelper implements Serializable { public int titleLength = 50; + public int sitePathLength = 50; + public boolean encodeUrlLink = false; public String urlLinkEncoding = Constants.UTF_8; @@ -163,7 +165,7 @@ public class ViewHelper implements Serializable { return StringUtil.EMPTY; } - protected String escapeHighlight(String text) { + protected String escapeHighlight(final String text) { return S2Functions.h(text) .replaceAll(escapedSolrHighlightPre, solrHighlightTagPre) .replaceAll(escapedSolrHighlightPost, solrHighlightTagPost); @@ -495,6 +497,16 @@ public class ViewHelper implements Serializable { return buf.toString(); } + public Object getSitePath(final Map docMap) { + final Object urlLink = docMap.get("urlLink"); + if (urlLink != null) { + return StringUtils.abbreviate( + urlLink.toString().replaceFirst("^[a-zA-Z0-9]*:/?/*", ""), + sitePathLength); + } + return null; + } + public boolean isUseSession() { return useSession; } diff --git a/src/main/java/jp/sf/fess/util/QueryResponseList.java b/src/main/java/jp/sf/fess/util/QueryResponseList.java index 6014d2e69..4cb453355 100644 --- a/src/main/java/jp/sf/fess/util/QueryResponseList.java +++ b/src/main/java/jp/sf/fess/util/QueryResponseList.java @@ -151,6 +151,7 @@ public class QueryResponseList implements List> { docMap.put("contentDescription", viewHelper.getContentDescription(docMap)); docMap.put("urlLink", viewHelper.getUrlLink(docMap)); + docMap.put("sitePath", viewHelper.getSitePath(docMap)); } parent.add(docMap); diff --git a/src/main/webapp/WEB-INF/view/searchResults.jsp b/src/main/webapp/WEB-INF/view/searchResults.jsp index ae0c0cbb8..63f88a5c2 100644 --- a/src/main/webapp/WEB-INF/view/searchResults.jsp +++ b/src/main/webapp/WEB-INF/view/searchResults.jsp @@ -34,7 +34,7 @@
${doc.contentDescription}
- ${f:h(doc.site)} + ${f:h(doc.sitePath)} diff --git a/src/test/java/jp/sf/fess/helper/ViewHelperTest.java b/src/test/java/jp/sf/fess/helper/ViewHelperTest.java index 1e313cc10..2dfcf3ffe 100644 --- a/src/test/java/jp/sf/fess/helper/ViewHelperTest.java +++ b/src/test/java/jp/sf/fess/helper/ViewHelperTest.java @@ -16,6 +16,9 @@ package jp.sf.fess.helper; +import java.util.HashMap; +import java.util.Map; + import org.seasar.extension.unit.S2TestCase; public class ViewHelperTest extends S2TestCase { @@ -105,4 +108,40 @@ public class ViewHelperTest extends S2TestCase { } + public void test_getSitePath() { + String urlLink; + String sitePath; + final Map docMap = new HashMap<>(); + + urlLink = "http://www.yahoo.co.jp"; + sitePath = "www.yahoo.co.jp"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + + urlLink = "https://www.jp.websecurity.symantec.com/"; + sitePath = "www.jp.websecurity.symantec.com/"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + + urlLink = "http://www.dfasdfaskdfkakdfadfsd.jp"; + sitePath = "www.dfasdfaskdfkakdfadfsd.jp"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + + urlLink = "www.yahoo.co.jp"; + sitePath = "www.yahoo.co.jp"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + + urlLink = "smb://123.45.678.91/kyoyu1"; + sitePath = "123.45.678.91/kyoyu1"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + + urlLink = "file://home/taro/"; + sitePath = "home/taro/"; + docMap.put("urlLink", urlLink); + assertEquals(sitePath, viewHelper.getSitePath(docMap)); + } + }