diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java index cc1d5aeb9..effddedc2 100644 --- a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java +++ b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java @@ -472,6 +472,9 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im // Unix return abbreviateSite(value); } + } else if (url.startsWith("smb:") || url.startsWith("smb1:")) { + final String value = url.replaceFirst("^smb.?:/+", StringUtil.EMPTY); + return abbreviateSite("\\\\" + value.replace('/', '\\')); } return getSite(url, encoding); diff --git a/src/main/java/org/codelibs/fess/helper/ViewHelper.java b/src/main/java/org/codelibs/fess/helper/ViewHelper.java index 01045b7c9..b10188b9e 100644 --- a/src/main/java/org/codelibs/fess/helper/ViewHelper.java +++ b/src/main/java/org/codelibs/fess/helper/ViewHelper.java @@ -605,6 +605,16 @@ public class ViewHelper { public Object getSitePath(final Map docMap) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); + final Object siteValue = docMap.get(fessConfig.getIndexFieldSite()); + if (siteValue != null) { + final String site = siteValue.toString(); + final int size = fessConfig.getResponseMaxSitePathLengthAsInteger(); + if (size > -1) { + return StringUtils.abbreviate(site, size); + } else { + return site; + } + } final Object urlLink = docMap.get(fessConfig.getResponseFieldUrlLink()); if (urlLink != null) { final String returnUrl; diff --git a/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java b/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java index e4f367833..e09fadd9a 100644 --- a/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java +++ b/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java @@ -198,6 +198,18 @@ public class FessFileTransformerTest extends UnitFessTestCase { url = "file:////server/user"; exp = "\\\\server\\user"; assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8")); + + url = "smb://server/user"; + exp = "\\\\server\\user"; + assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8")); + + url = "smb1://server/user"; + exp = "\\\\server\\user"; + assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8")); + + url = "ftp://example.com/file"; + exp = "example.com/file"; + assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8")); } public void test_getSite_ok_len10() {