Shinsuke Sugaya 10 years ago
parent
commit
acb58e7ebe

+ 22 - 9
src/main/java/jp/sf/fess/helper/QueryHelper.java

@@ -130,6 +130,8 @@ public class QueryHelper implements Serializable {
 
 
     protected boolean useBigram = true;
     protected boolean useBigram = true;
 
 
+    protected boolean useFuzzyOnTextField = false;
+
     protected String additionalQuery;
     protected String additionalQuery;
 
 
     protected int maxFilterQueriesForRole = Integer.MAX_VALUE;
     protected int maxFilterQueriesForRole = Integer.MAX_VALUE;
@@ -431,7 +433,7 @@ public class QueryHelper implements Serializable {
                             buf.append('*');
                             buf.append('*');
                         }
                         }
                         appendQueryValue(buf, targetWord, isInUrl ? false
                         appendQueryValue(buf, targetWord, isInUrl ? false
-                                : isBigramField(field));
+                                : isBigramField(field), true);
                         if (isInUrl) {
                         if (isInUrl) {
                             buf.append('*');
                             buf.append('*');
                         }
                         }
@@ -444,7 +446,7 @@ public class QueryHelper implements Serializable {
                             queryBuf.append('*');
                             queryBuf.append('*');
                         }
                         }
                         appendQueryValue(queryBuf, targetWord, isInUrl ? false
                         appendQueryValue(queryBuf, targetWord, isInUrl ? false
-                                : isBigramField(field));
+                                : isBigramField(field), true);
                         if (isInUrl) {
                         if (isInUrl) {
                             queryBuf.append('*');
                             queryBuf.append('*');
                         }
                         }
@@ -569,7 +571,7 @@ public class QueryHelper implements Serializable {
     }
     }
 
 
     protected void appendQueryValue(final StringBuilder buf,
     protected void appendQueryValue(final StringBuilder buf,
-            final String query, final boolean useBigram) {
+            final String query, final boolean useBigram, final boolean useFuzzy) {
         // check reserved
         // check reserved
         boolean reserved = false;
         boolean reserved = false;
         for (final String element : Constants.RESERVED) {
         for (final String element : Constants.RESERVED) {
@@ -662,7 +664,9 @@ public class QueryHelper implements Serializable {
         }
         }
 
 
         if (fuzzyValue != null) {
         if (fuzzyValue != null) {
-            buf.append(fuzzyValue);
+            if (useFuzzy) {
+                buf.append(fuzzyValue);
+            }
         } else if (proximityValue != null) {
         } else if (proximityValue != null) {
             buf.append(proximityValue);
             buf.append(proximityValue);
         } else if (caretValue != null) {
         } else if (caretValue != null) {
@@ -903,13 +907,14 @@ public class QueryHelper implements Serializable {
                     if (notOperatorFlag) {
                     if (notOperatorFlag) {
                         final StringBuilder buf = new StringBuilder(100);
                         final StringBuilder buf = new StringBuilder(100);
                         buf.append(prefix);
                         buf.append(prefix);
-                        appendQueryValue(buf, targetWord, isBigramField(field));
+                        appendQueryValue(buf, targetWord, isBigramField(field),
+                                true);
                         notOperatorList.add(buf.toString());
                         notOperatorList.add(buf.toString());
                         notOperatorFlag = false;
                         notOperatorFlag = false;
                     } else {
                     } else {
                         queryBuf.append(prefix);
                         queryBuf.append(prefix);
                         appendQueryValue(queryBuf, targetWord,
                         appendQueryValue(queryBuf, targetWord,
-                                isBigramField(field));
+                                isBigramField(field), true);
                         queryOperandCount++;
                         queryOperandCount++;
                     }
                     }
                     nonPrefix = true;
                     nonPrefix = true;
@@ -986,18 +991,18 @@ public class QueryHelper implements Serializable {
             final String value, final String queryLanguage) {
             final String value, final String queryLanguage) {
         buf.append('(');
         buf.append('(');
         buf.append(fieldHelper.titleField).append(':');
         buf.append(fieldHelper.titleField).append(':');
-        appendQueryValue(buf, value, useBigram);
+        appendQueryValue(buf, value, useBigram, useFuzzyOnTextField);
         appendFieldBoostValue(buf, fieldHelper.titleField, value);
         appendFieldBoostValue(buf, fieldHelper.titleField, value);
         buf.append(_OR_);
         buf.append(_OR_);
         buf.append(fieldHelper.contentField).append(':');
         buf.append(fieldHelper.contentField).append(':');
-        appendQueryValue(buf, value, useBigram);
+        appendQueryValue(buf, value, useBigram, useFuzzyOnTextField);
         appendFieldBoostValue(buf, fieldHelper.contentField, value);
         appendFieldBoostValue(buf, fieldHelper.contentField, value);
         if (StringUtil.isNotBlank(queryLanguage)) {
         if (StringUtil.isNotBlank(queryLanguage)) {
             final String languageField = "content_" + queryLanguage;
             final String languageField = "content_" + queryLanguage;
             buf.append(_OR_);
             buf.append(_OR_);
             buf.append(languageField);
             buf.append(languageField);
             buf.append(':');
             buf.append(':');
-            appendQueryValue(buf, value, false);
+            appendQueryValue(buf, value, false, true);
             appendFieldBoostValue(buf, languageField, value);
             appendFieldBoostValue(buf, languageField, value);
         }
         }
         buf.append(')');
         buf.append(')');
@@ -1331,6 +1336,14 @@ public class QueryHelper implements Serializable {
         this.useBigram = useBigram;
         this.useBigram = useBigram;
     }
     }
 
 
+    public boolean isUseFuzzyOnTextField() {
+        return useFuzzyOnTextField;
+    }
+
+    public void setUseFuzzyOnTextField(boolean useFuzzyOnTextField) {
+        this.useFuzzyOnTextField = useFuzzyOnTextField;
+    }
+
     /**
     /**
      * @return the additionalQuery
      * @return the additionalQuery
      */
      */

+ 165 - 29
src/test/java/jp/sf/fess/helper/QueryHelperTest.java

@@ -392,13 +392,13 @@ public class QueryHelperTest extends S2TestCase {
             getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
             getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
             // ~
             // ~
 
 
-            assertEquals("title:QUERY~ OR content:QUERY~", queryHelper
+            assertEquals("title:QUERY OR content:QUERY", queryHelper
                     .buildQuery("QUERY~").getQuery());
                     .buildQuery("QUERY~").getQuery());
-            assertEquals("(title:QUERY1~ OR content:QUERY1~) " + op
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("QUERY1~ QUERY2").getQuery());
                     .buildQuery("QUERY1~ QUERY2").getQuery());
-            assertEquals("(title:QUERY1~ OR content:QUERY1~) " + op
-                    + " (title:QUERY2~ OR content:QUERY2~)", queryHelper
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
+                    + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("QUERY1~ QUERY2~").getQuery());
                     .buildQuery("QUERY1~ QUERY2~").getQuery());
 
 
             assertEquals("mimetype:QUERY1~",
             assertEquals("mimetype:QUERY1~",
@@ -407,20 +407,20 @@ public class QueryHelperTest extends S2TestCase {
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("mimetype:QUERY1~ QUERY2").getQuery());
                     .buildQuery("mimetype:QUERY1~ QUERY2").getQuery());
 
 
-            assertEquals("title:QUERY1\\ QUERY2~ OR content:QUERY1\\ QUERY2~",
+            assertEquals("title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2",
                     queryHelper.buildQuery("\"QUERY1 QUERY2\"~").getQuery());
                     queryHelper.buildQuery("\"QUERY1 QUERY2\"~").getQuery());
-            assertEquals("title:QUERY1~ OR content:QUERY1~", queryHelper
+            assertEquals("title:QUERY1 OR content:QUERY1", queryHelper
                     .buildQuery("\"QUERY1~\"").getQuery());
                     .buildQuery("\"QUERY1~\"").getQuery());
 
 
             // ~0.8
             // ~0.8
 
 
-            assertEquals("title:QUERY~0.8 OR content:QUERY~0.8", queryHelper
+            assertEquals("title:QUERY OR content:QUERY", queryHelper
                     .buildQuery("QUERY~0.8").getQuery());
                     .buildQuery("QUERY~0.8").getQuery());
-            assertEquals("(title:QUERY1~0.8 OR content:QUERY1~0.8) " + op
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("QUERY1~0.8 QUERY2").getQuery());
                     .buildQuery("QUERY1~0.8 QUERY2").getQuery());
-            assertEquals("(title:QUERY1~0.5 OR content:QUERY1~0.5) " + op
-                    + " (title:QUERY2~0.8 OR content:QUERY2~0.8)", queryHelper
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
+                    + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("QUERY1~0.5 QUERY2~0.8").getQuery());
                     .buildQuery("QUERY1~0.5 QUERY2~0.8").getQuery());
 
 
             assertEquals("mimetype:QUERY1~0.8",
             assertEquals("mimetype:QUERY1~0.8",
@@ -429,17 +429,86 @@ public class QueryHelperTest extends S2TestCase {
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     + " (title:QUERY2 OR content:QUERY2)", queryHelper
                     .buildQuery("mimetype:QUERY1~0.8 QUERY2").getQuery());
                     .buildQuery("mimetype:QUERY1~0.8 QUERY2").getQuery());
 
 
-            assertEquals(
-                    "title:QUERY1\\ QUERY2~0.8 OR content:QUERY1\\ QUERY2~0.8",
+            assertEquals("title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2",
                     queryHelper.buildQuery("\"QUERY1 QUERY2\"~0.8").getQuery());
                     queryHelper.buildQuery("\"QUERY1 QUERY2\"~0.8").getQuery());
-            assertEquals("title:QUERY1~0.8 OR content:QUERY1~0.8", queryHelper
+            assertEquals("title:QUERY1 OR content:QUERY1", queryHelper
                     .buildQuery("\"QUERY1~0.8\"").getQuery());
                     .buildQuery("\"QUERY1~0.8\"").getQuery());
 
 
-            assertEquals("title:QUERY1~0.8 OR content:QUERY1~0.8", queryHelper
+            assertEquals("title:QUERY1 OR content:QUERY1", queryHelper
                     .buildQuery("\"QUERY1~0.8a\"").getQuery());
                     .buildQuery("\"QUERY1~0.8a\"").getQuery());
-            assertEquals("title:QUERY1~ OR content:QUERY1~", queryHelper
+            assertEquals("title:QUERY1 OR content:QUERY1", queryHelper
                     .buildQuery("\"QUERY1~a\"").getQuery());
                     .buildQuery("\"QUERY1~a\"").getQuery());
         }
         }
+
+        getRequest().setLocale(Locale.JAPANESE);
+        for (final String op : new String[] { "AND", "OR" }) {
+            getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
+            // ~
+
+            assertEquals("title:QUERY OR content:QUERY OR content_ja:QUERY~",
+                    queryHelper.buildQuery("QUERY~").getQuery());
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildQuery("QUERY1~ QUERY2").getQuery());
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2~)",
+                    queryHelper.buildQuery("QUERY1~ QUERY2~").getQuery());
+
+            assertEquals("mimetype:QUERY1~",
+                    queryHelper.buildQuery("mimetype:QUERY1~").getQuery());
+            assertEquals("mimetype:QUERY1~ " + op
+                    + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildQuery("mimetype:QUERY1~ QUERY2")
+                            .getQuery());
+
+            assertEquals(
+                    "title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2 OR content_ja:QUERY1\\ QUERY2~",
+                    queryHelper.buildQuery("\"QUERY1 QUERY2\"~").getQuery());
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~",
+                    queryHelper.buildQuery("\"QUERY1~\"").getQuery());
+
+            // ~0.8
+
+            assertEquals(
+                    "title:QUERY OR content:QUERY OR content_ja:QUERY~0.8",
+                    queryHelper.buildQuery("QUERY~0.8").getQuery());
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildQuery("QUERY1~0.8 QUERY2").getQuery());
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.5) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2~0.8)",
+                    queryHelper.buildQuery("QUERY1~0.5 QUERY2~0.8").getQuery());
+
+            assertEquals("mimetype:QUERY1~0.8",
+                    queryHelper.buildQuery("mimetype:QUERY1~0.8").getQuery());
+            assertEquals("mimetype:QUERY1~0.8 " + op
+                    + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildQuery("mimetype:QUERY1~0.8 QUERY2")
+                            .getQuery());
+
+            assertEquals(
+                    "title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2 OR content_ja:QUERY1\\ QUERY2~0.8",
+                    queryHelper.buildQuery("\"QUERY1 QUERY2\"~0.8").getQuery());
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8",
+                    queryHelper.buildQuery("\"QUERY1~0.8\"").getQuery());
+
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8",
+                    queryHelper.buildQuery("\"QUERY1~0.8a\"").getQuery());
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~",
+                    queryHelper.buildQuery("\"QUERY1~a\"").getQuery());
+        }
     }
     }
 
 
     public void test_proximitySearches() {
     public void test_proximitySearches() {
@@ -1075,13 +1144,13 @@ public class QueryHelperTest extends S2TestCase {
             getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
             getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
             // ~
             // ~
 
 
-            assertEquals("title:QUERY~ OR content:QUERY~",
+            assertEquals("title:QUERY OR content:QUERY",
                     queryHelper.buildFacetQuery("QUERY~"));
                     queryHelper.buildFacetQuery("QUERY~"));
-            assertEquals("(title:QUERY1~ OR content:QUERY1~) " + op
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
                     + " (title:QUERY2 OR content:QUERY2)",
                     + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("QUERY1~ QUERY2"));
                     queryHelper.buildFacetQuery("QUERY1~ QUERY2"));
-            assertEquals("(title:QUERY1~ OR content:QUERY1~) " + op
-                    + " (title:QUERY2~ OR content:QUERY2~)",
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
+                    + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("QUERY1~ QUERY2~"));
                     queryHelper.buildFacetQuery("QUERY1~ QUERY2~"));
 
 
             assertEquals("mimetype:QUERY1~",
             assertEquals("mimetype:QUERY1~",
@@ -1090,20 +1159,20 @@ public class QueryHelperTest extends S2TestCase {
                     + " (title:QUERY2 OR content:QUERY2)",
                     + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("mimetype:QUERY1~ QUERY2"));
                     queryHelper.buildFacetQuery("mimetype:QUERY1~ QUERY2"));
 
 
-            assertEquals("title:QUERY1\\ QUERY2~ OR content:QUERY1\\ QUERY2~",
+            assertEquals("title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2",
                     queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~"));
                     queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~"));
-            assertEquals("title:QUERY1~ OR content:QUERY1~",
+            assertEquals("title:QUERY1 OR content:QUERY1",
                     queryHelper.buildFacetQuery("\"QUERY1~\""));
                     queryHelper.buildFacetQuery("\"QUERY1~\""));
 
 
             // ~0.8
             // ~0.8
 
 
-            assertEquals("title:QUERY~0.8 OR content:QUERY~0.8",
+            assertEquals("title:QUERY OR content:QUERY",
                     queryHelper.buildFacetQuery("QUERY~0.8"));
                     queryHelper.buildFacetQuery("QUERY~0.8"));
-            assertEquals("(title:QUERY1~0.8 OR content:QUERY1~0.8) " + op
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
                     + " (title:QUERY2 OR content:QUERY2)",
                     + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("QUERY1~0.8 QUERY2"));
                     queryHelper.buildFacetQuery("QUERY1~0.8 QUERY2"));
-            assertEquals("(title:QUERY1~0.5 OR content:QUERY1~0.5) " + op
-                    + " (title:QUERY2~0.8 OR content:QUERY2~0.8)",
+            assertEquals("(title:QUERY1 OR content:QUERY1) " + op
+                    + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("QUERY1~0.5 QUERY2~0.8"));
                     queryHelper.buildFacetQuery("QUERY1~0.5 QUERY2~0.8"));
 
 
             assertEquals("mimetype:QUERY1~0.8",
             assertEquals("mimetype:QUERY1~0.8",
@@ -1112,15 +1181,82 @@ public class QueryHelperTest extends S2TestCase {
                     + " (title:QUERY2 OR content:QUERY2)",
                     + " (title:QUERY2 OR content:QUERY2)",
                     queryHelper.buildFacetQuery("mimetype:QUERY1~0.8 QUERY2"));
                     queryHelper.buildFacetQuery("mimetype:QUERY1~0.8 QUERY2"));
 
 
+            assertEquals("title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2",
+                    queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~0.8"));
+            assertEquals("title:QUERY1 OR content:QUERY1",
+                    queryHelper.buildFacetQuery("\"QUERY1~0.8\""));
+
+            assertEquals("title:QUERY1 OR content:QUERY1",
+                    queryHelper.buildFacetQuery("\"QUERY1~0.8a\""));
+            assertEquals("title:QUERY1 OR content:QUERY1",
+                    queryHelper.buildFacetQuery("\"QUERY1~a\""));
+        }
+
+        getRequest().setLocale(Locale.JAPANESE);
+        for (final String op : new String[] { "AND", "OR" }) {
+            getRequest().setAttribute(Constants.DEFAULT_OPERATOR, op);
+            // ~
+
+            assertEquals("title:QUERY OR content:QUERY OR content_ja:QUERY~",
+                    queryHelper.buildFacetQuery("QUERY~"));
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildFacetQuery("QUERY1~ QUERY2"));
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2~)",
+                    queryHelper.buildFacetQuery("QUERY1~ QUERY2~"));
+
+            assertEquals("mimetype:QUERY1~",
+                    queryHelper.buildFacetQuery("mimetype:QUERY1~"));
+            assertEquals("mimetype:QUERY1~ " + op
+                    + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildFacetQuery("mimetype:QUERY1~ QUERY2"));
+
+            assertEquals(
+                    "title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2 OR content_ja:QUERY1\\ QUERY2~",
+                    queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~"));
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~",
+                    queryHelper.buildFacetQuery("\"QUERY1~\""));
+
+            // ~0.8
+
+            assertEquals(
+                    "title:QUERY OR content:QUERY OR content_ja:QUERY~0.8",
+                    queryHelper.buildFacetQuery("QUERY~0.8"));
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildFacetQuery("QUERY1~0.8 QUERY2"));
+            assertEquals(
+                    "(title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.5) "
+                            + op
+                            + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2~0.8)",
+                    queryHelper.buildFacetQuery("QUERY1~0.5 QUERY2~0.8"));
+
+            assertEquals("mimetype:QUERY1~0.8",
+                    queryHelper.buildFacetQuery("mimetype:QUERY1~0.8"));
+            assertEquals("mimetype:QUERY1~0.8 " + op
+                    + " (title:QUERY2 OR content:QUERY2 OR content_ja:QUERY2)",
+                    queryHelper.buildFacetQuery("mimetype:QUERY1~0.8 QUERY2"));
+
             assertEquals(
             assertEquals(
-                    "title:QUERY1\\ QUERY2~0.8 OR content:QUERY1\\ QUERY2~0.8",
+                    "title:QUERY1\\ QUERY2 OR content:QUERY1\\ QUERY2 OR content_ja:QUERY1\\ QUERY2~0.8",
                     queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~0.8"));
                     queryHelper.buildFacetQuery("\"QUERY1 QUERY2\"~0.8"));
-            assertEquals("title:QUERY1~0.8 OR content:QUERY1~0.8",
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8",
                     queryHelper.buildFacetQuery("\"QUERY1~0.8\""));
                     queryHelper.buildFacetQuery("\"QUERY1~0.8\""));
 
 
-            assertEquals("title:QUERY1~0.8 OR content:QUERY1~0.8",
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~0.8",
                     queryHelper.buildFacetQuery("\"QUERY1~0.8a\""));
                     queryHelper.buildFacetQuery("\"QUERY1~0.8a\""));
-            assertEquals("title:QUERY1~ OR content:QUERY1~",
+            assertEquals(
+                    "title:QUERY1 OR content:QUERY1 OR content_ja:QUERY1~",
                     queryHelper.buildFacetQuery("\"QUERY1~a\""));
                     queryHelper.buildFacetQuery("\"QUERY1~a\""));
         }
         }
     }
     }