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 cc1d5aeb96b76de1233f625399df8ca65341407f..effddedc2ccf62ea88089f4cc4ed7c3d7e4ccf2f 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 01045b7c9d9ecf7f668ea3ba9c39d2653180245d..b10188b9e7d5cdc1cf9b9c7b39f4e21172316b4e 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<String, Object> 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 e4f36783309f1c2973d6eae497dd6639c5400282..e09fadd9ac098bc37d4eab2a7351abaa7dbb40be 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() {