diff --git a/src/main/java/org/codelibs/fess/helper/QueryHelper.java b/src/main/java/org/codelibs/fess/helper/QueryHelper.java index 49cf5c8e0..62d2ef302 100644 --- a/src/main/java/org/codelibs/fess/helper/QueryHelper.java +++ b/src/main/java/org/codelibs/fess/helper/QueryHelper.java @@ -687,19 +687,21 @@ public class QueryHelper { protected QueryBuilder buildDefaultQueryBuilder(final DefaultQueryBuilderFunction builder) { final BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); final FessConfig fessConfig = ComponentUtil.getFessConfig(); - final QueryBuilder titleQuery = - builder.apply(fessConfig.getIndexFieldTitle(), fessConfig.getQueryBoostTitleAsDecimal().floatValue()); - boolQuery.should(titleQuery); - final QueryBuilder contentQuery = - builder.apply(fessConfig.getIndexFieldContent(), fessConfig.getQueryBoostContentAsDecimal().floatValue()); - boolQuery.should(contentQuery); + boolQuery.should(builder.apply(fessConfig.getIndexFieldTitle(), fessConfig.getQueryBoostTitleAsDecimal().floatValue())); + boolQuery.should(builder.apply(fessConfig.getIndexFieldContent(), fessConfig.getQueryBoostContentAsDecimal().floatValue())); + final float importantContentBoost = fessConfig.getQueryBoostImportantContentAsDecimal().floatValue(); + if (importantContentBoost >= 0.0f) { + boolQuery.should(builder.apply(fessConfig.getIndexFieldImportantContent(), importantContentBoost)); + } + final float importantContantLangBoost = fessConfig.getQueryBoostImportantContentLangAsDecimal().floatValue(); getQueryLanguages().ifPresent(langs -> stream(langs).of(stream -> stream.forEach(lang -> { - final QueryBuilder titleLangQuery = - builder.apply(fessConfig.getIndexFieldTitle() + "_" + lang, fessConfig.getQueryBoostTitleLangAsDecimal().floatValue()); - boolQuery.should(titleLangQuery); - final QueryBuilder contentLangQuery = builder.apply(fessConfig.getIndexFieldContent() + "_" + lang, - fessConfig.getQueryBoostContentLangAsDecimal().floatValue()); - boolQuery.should(contentLangQuery); + boolQuery.should( + builder.apply(fessConfig.getIndexFieldTitle() + "_" + lang, fessConfig.getQueryBoostTitleLangAsDecimal().floatValue())); + boolQuery.should(builder.apply(fessConfig.getIndexFieldContent() + "_" + lang, + fessConfig.getQueryBoostContentLangAsDecimal().floatValue())); + if (importantContantLangBoost >= 0.0f) { + boolQuery.should(builder.apply(fessConfig.getIndexFieldImportantContent() + "_" + lang, importantContantLangBoost)); + } }))); additionalDefaultList.stream().forEach(f -> { final QueryBuilder query = builder.apply(f.getFirst(), f.getSecond()); diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index f1030b08e..c9898a381 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -926,18 +926,24 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction */ String QUERY_LANGUAGE_MAPPING = "query.language.mapping"; - /** The key of the configuration. e.g. 0.01 */ + /** The key of the configuration. e.g. 0.5 */ String QUERY_BOOST_TITLE = "query.boost.title"; /** The key of the configuration. e.g. 1.0 */ String QUERY_BOOST_TITLE_LANG = "query.boost.title.lang"; - /** The key of the configuration. e.g. 0.005 */ + /** The key of the configuration. e.g. 0.05 */ String QUERY_BOOST_CONTENT = "query.boost.content"; - /** The key of the configuration. e.g. 0.5 */ + /** The key of the configuration. e.g. 0.1 */ String QUERY_BOOST_CONTENT_LANG = "query.boost.content.lang"; + /** The key of the configuration. e.g. -1.0 */ + String QUERY_BOOST_important_content = "query.boost.important_content"; + + /** The key of the configuration. e.g. -1.0 */ + String QUERY_BOOST_important_content_LANG = "query.boost.important_content.lang"; + /** The key of the configuration. e.g. label */ String QUERY_FACET_FIELDS = "query.facet.fields"; @@ -4261,7 +4267,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** * Get the value for the key 'query.boost.title'.
- * The value is, e.g. 0.01
+ * The value is, e.g. 0.5
* comment: boost * @return The value of found property. (NotNull: if not found, exception but basically no way) */ @@ -4269,7 +4275,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** * Get the value for the key 'query.boost.title' as {@link java.math.BigDecimal}.
- * The value is, e.g. 0.01
+ * The value is, e.g. 0.5
* comment: boost * @return The value of found property. (NotNull: if not found, exception but basically no way) * @throws NumberFormatException When the property is not decimal. @@ -4293,14 +4299,14 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** * Get the value for the key 'query.boost.content'.
- * The value is, e.g. 0.005
+ * The value is, e.g. 0.05
* @return The value of found property. (NotNull: if not found, exception but basically no way) */ String getQueryBoostContent(); /** * Get the value for the key 'query.boost.content' as {@link java.math.BigDecimal}.
- * The value is, e.g. 0.005
+ * The value is, e.g. 0.05
* @return The value of found property. (NotNull: if not found, exception but basically no way) * @throws NumberFormatException When the property is not decimal. */ @@ -4308,19 +4314,49 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** * Get the value for the key 'query.boost.content.lang'.
- * The value is, e.g. 0.5
+ * The value is, e.g. 0.1
* @return The value of found property. (NotNull: if not found, exception but basically no way) */ String getQueryBoostContentLang(); /** * Get the value for the key 'query.boost.content.lang' as {@link java.math.BigDecimal}.
- * The value is, e.g. 0.5
+ * The value is, e.g. 0.1
* @return The value of found property. (NotNull: if not found, exception but basically no way) * @throws NumberFormatException When the property is not decimal. */ java.math.BigDecimal getQueryBoostContentLangAsDecimal(); + /** + * Get the value for the key 'query.boost.important_content'.
+ * The value is, e.g. -1.0
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + */ + String getQueryBoostImportantContent(); + + /** + * Get the value for the key 'query.boost.important_content' as {@link java.math.BigDecimal}.
+ * The value is, e.g. -1.0
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + * @throws NumberFormatException When the property is not decimal. + */ + java.math.BigDecimal getQueryBoostImportantContentAsDecimal(); + + /** + * Get the value for the key 'query.boost.important_content.lang'.
+ * The value is, e.g. -1.0
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + */ + String getQueryBoostImportantContentLang(); + + /** + * Get the value for the key 'query.boost.important_content.lang' as {@link java.math.BigDecimal}.
+ * The value is, e.g. -1.0
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + * @throws NumberFormatException When the property is not decimal. + */ + java.math.BigDecimal getQueryBoostImportantContentLangAsDecimal(); + /** * Get the value for the key 'query.facet.fields'.
* The value is, e.g. label
@@ -7987,6 +8023,22 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction return getAsDecimal(FessConfig.QUERY_BOOST_CONTENT_LANG); } + public String getQueryBoostImportantContent() { + return get(FessConfig.QUERY_BOOST_important_content); + } + + public java.math.BigDecimal getQueryBoostImportantContentAsDecimal() { + return getAsDecimal(FessConfig.QUERY_BOOST_important_content); + } + + public String getQueryBoostImportantContentLang() { + return get(FessConfig.QUERY_BOOST_important_content_LANG); + } + + public java.math.BigDecimal getQueryBoostImportantContentLangAsDecimal() { + return getAsDecimal(FessConfig.QUERY_BOOST_important_content_LANG); + } + public String getQueryFacetFields() { return get(FessConfig.QUERY_FACET_FIELDS); } @@ -9480,10 +9532,12 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction defaultMap.put(FessConfig.QUERY_GSA_DEFAULT_PREFERENCE, "_query"); defaultMap.put(FessConfig.QUERY_LANGUAGE_MAPPING, "ar=ar\nbg=bg\nbn=bn\nca=ca\nckb-iq=ckb-iq\nckb_IQ=ckb-iq\ncs=cs\nda=da\nde=de\nel=el\nen=en\nen-ie=en-ie\nen_IE=en-ie\nes=es\net=et\neu=eu\nfa=fa\nfi=fi\nfr=fr\ngl=gl\ngu=gu\nhe=he\nhi=hi\nhr=hr\nhu=hu\nhy=hy\nid=id\nit=it\nja=ja\nko=ko\nlt=lt\nlv=lv\nmk=mk\nml=ml\nnl=nl\nno=no\npa=pa\npl=pl\npt=pt\npt-br=pt-br\npt_BR=pt-br\nro=ro\nru=ru\nsi=si\nsq=sq\nsv=sv\nta=ta\nte=te\nth=th\ntl=tl\ntr=tr\nuk=uk\nur=ur\nvi=vi\nzh-cn=zh-cn\nzh_CN=zh-cn\nzh-tw=zh-tw\nzh_TW=zh-tw\nzh=zh\n"); - defaultMap.put(FessConfig.QUERY_BOOST_TITLE, "0.01"); + defaultMap.put(FessConfig.QUERY_BOOST_TITLE, "0.5"); defaultMap.put(FessConfig.QUERY_BOOST_TITLE_LANG, "1.0"); - defaultMap.put(FessConfig.QUERY_BOOST_CONTENT, "0.005"); - defaultMap.put(FessConfig.QUERY_BOOST_CONTENT_LANG, "0.5"); + defaultMap.put(FessConfig.QUERY_BOOST_CONTENT, "0.05"); + defaultMap.put(FessConfig.QUERY_BOOST_CONTENT_LANG, "0.1"); + defaultMap.put(FessConfig.QUERY_BOOST_important_content, "-1.0"); + defaultMap.put(FessConfig.QUERY_BOOST_important_content_LANG, "-1.0"); defaultMap.put(FessConfig.QUERY_FACET_FIELDS, "label"); defaultMap.put(FessConfig.QUERY_FACET_FIELDS_SIZE, "100"); defaultMap.put(FessConfig.QUERY_FACET_FIELDS_min_doc_count, "1"); diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index bb3923053..b040d15b5 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -506,10 +506,12 @@ zh_TW=zh-tw\n\ zh=zh\n\ # boost -query.boost.title=0.01 +query.boost.title=0.5 query.boost.title.lang=1.0 -query.boost.content=0.005 -query.boost.content.lang=0.5 +query.boost.content=0.05 +query.boost.content.lang=0.1 +query.boost.important_content=-1.0 +query.boost.important_content.lang=-1.0 # facet query.facet.fields=label diff --git a/src/main/resources/fess_indices/fess/doc.json b/src/main/resources/fess_indices/fess/doc.json index 2628c0931..cb01b6393 100644 --- a/src/main/resources/fess_indices/fess/doc.json +++ b/src/main/resources/fess_indices/fess/doc.json @@ -493,7 +493,9 @@ }, "important_content": { "type": "text", - "index": false + "analyzer": "standard_analyzer", + "search_analyzer": "standard_search_analyzer", + "term_vector": "with_positions_offsets" }, "content": { "type": "text",