fix #1741 enable ltr

This commit is contained in:
Shinsuke Sugaya 2018-07-05 10:25:29 +09:00
parent f0e2046cc5
commit 5e7a340f96
6 changed files with 35 additions and 25 deletions

View file

@ -75,16 +75,14 @@
<param name="plugin.zip.version" value="6.3.1" />
</antcall>
<!-- learning-to-rank -->
<!--
<antcall target="install.plugin">
<param name="repo.url" value="${maven.snapshot.repo.url}" />
<param name="repo.url" value="${maven.release.repo.url}" />
<param name="plugin.groupId" value="org/codelibs" />
<param name="plugin.name.prefix" value="elasticsearch-" />
<param name="plugin.name" value="learning-to-rank" />
<param name="plugin.version" value="6.3.0-SNAPSHOT" />
<param name="plugin.zip.version" value="6.3.0-20180627.070011-1" />
<param name="plugin.version" value="6.3.0" />
<param name="plugin.zip.version" value="6.3.0" />
</antcall>
-->
<antcall target="remove.jars" />
</target>

View file

@ -144,6 +144,10 @@ public class Constants extends CoreLibConstants {
public static final String PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY = "purge.suggest.searchlog.day";
public static final String LTR_MODEL_NAME_PROPERTY = "ltr.model.name";
public static final String LTR_WINDOW_SIZE_PROPERTY = "ltr.window.size";
public static final String REQUEST_QUERIES = "fess.Queries";
public static final String HIGHLIGHT_QUERIES = "fess.HighlightQueries";

View file

@ -953,7 +953,7 @@ public class QueryHelper {
}
public RescorerBuilder<?>[] getRescorers(final Map<String, Object> params) {
return queryRescorerList.stream().map(r -> r.evaluate(params)).toArray(n -> new RescorerBuilder<?>[n]);
return queryRescorerList.stream().map(r -> r.evaluate(params)).filter(b -> b != null).toArray(n -> new RescorerBuilder<?>[n]);
}
public void addQueryRescorer(final QueryRescorer rescorer) {

View file

@ -628,6 +628,22 @@ public interface FessProp {
+ ComponentUtil.getSystemHelper().getProductVersion() + "; +http://fess.codelibs.org/bot.html)");
}
public default void setLtrModelName(final String value) {
setSystemProperty(Constants.LTR_MODEL_NAME_PROPERTY, value);
}
public default String getLtrModelName() {
return getSystemProperty(Constants.LTR_MODEL_NAME_PROPERTY, StringUtil.EMPTY);
}
public default void setLtrWindowSize(final int value) {
setSystemPropertyAsInt(Constants.LTR_WINDOW_SIZE_PROPERTY, value);
}
public default int getLtrWindowSize() {
return getSystemPropertyAsInt(Constants.LTR_WINDOW_SIZE_PROPERTY, 100);
}
//
// fess_*.properties
//

View file

@ -17,26 +17,23 @@ package org.codelibs.fess.score;
import java.util.Map;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.es.query.StoredLtrQueryBuilder;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
import org.elasticsearch.search.rescore.QueryRescorerBuilder;
import org.elasticsearch.search.rescore.RescorerBuilder;
public class LtrQueryRescorer implements QueryRescorer {
protected String modelName;
protected int windowSize = 100;
@Override
public RescorerBuilder<?> evaluate(Map<String, Object> params) {
return new QueryRescorerBuilder(new StoredLtrQueryBuilder().modelName(modelName).params(params)).windowSize(windowSize);
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public void setWindowSize(int windowSize) {
this.windowSize = windowSize;
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final String modelName = fessConfig.getLtrModelName();
if (StringUtil.isBlank(modelName)) {
return null;
}
return new QueryRescorerBuilder(new StoredLtrQueryBuilder().modelName(modelName).params(params)).windowSize(fessConfig
.getLtrWindowSize());
}
}

View file

@ -110,16 +110,11 @@
<postConstruct name="addHighlightField">
<arg>"content"</arg>
</postConstruct>
<!--
<postConstruct name="addQueryRescorer">
<arg>
<component class="org.codelibs.fess.score.LtrQueryRescorer">
<property name="modelName">"model_6"</property>
<property name="windowSize">100</property>
</component>
<component class="org.codelibs.fess.score.LtrQueryRescorer" />
</arg>
</postConstruct>
-->
</component>
<component name="viewHelper" class="org.codelibs.fess.helper.ViewHelper">
<postConstruct name="addFacetQueryView">