public class LengthAwareEDisMaxQParserPlugin extends QParserPlugin
ExtendedDismaxQParserPluginのラッパー。
nの大きさをいろいろに変えて用意した複数のN-gramフィールドを検索する場合に、検索性能を改善するために用いる。次のように設定して使い始める:
<queryParser name="lengthAwareEDisMax" class="com.rondhuit.solr.search.LengthAwareEDisMaxQParserPlugin">
<lst name="qf">
<str name="1">statement_k1 statement^3 title^5</str>
<str name="2">statement_2g statement^3 title^5</str>
</lst>
</queryParser>
ここで1や2はクエリの単語長を表している。また statement_k1, statement, title, statement_2g はフィールド名である。
クエリ文字列中の各単語の長さにより当該フィールドを重み指定付きでedismax検索するようにクエリが書き換えられる。
指定されない長さの単語の場合は、応答性能重視で適切に選ばれる。
| クエリ | 変換後のedismaxクエリ |
|---|---|
| 魂 日本 | statement_k1:魂 statement:魂^3 title:魂^5 statement_2g:日本 statement:日本^3 title:日本^5 |
| 憲法 person:安倍 | statement_2g:憲法 statement:憲法^3 title:憲法^5 person:安倍 |
SolrInfoBean.Category, SolrInfoBean.Group| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
NAME |
DEFAULT_QTYPE, standardPlugins| コンストラクタと説明 |
|---|
LengthAwareEDisMaxQParserPlugin() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
QParser |
createParser(java.lang.String qstr,
org.apache.solr.common.params.SolrParams localParams,
org.apache.solr.common.params.SolrParams params,
SolrQueryRequest req) |
void |
init(org.apache.solr.common.util.NamedList args) |
boolean |
isOperator(java.lang.String term) |
static int |
mostSuitableGramSize(java.util.List<java.lang.Integer> list,
int target) |
java.lang.String |
readTerm(java.lang.String str,
int[] offset) |
java.lang.String |
rewrite(java.lang.String original) |
java.lang.String |
rewriteTerm(java.lang.String original) |
getCategory, getDescription, getMetricNames, getNameclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetMetricRegistry, getMetricsSnapshot, registerMetricNamepublic QParser createParser(java.lang.String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)
createParser クラス内 QParserPluginpublic java.lang.String rewrite(java.lang.String original)
public boolean isOperator(java.lang.String term)
public java.lang.String rewriteTerm(java.lang.String original)
public static int mostSuitableGramSize(java.util.List<java.lang.Integer> list,
int target)
public java.lang.String readTerm(java.lang.String str,
int[] offset)
public void init(org.apache.solr.common.util.NamedList args)
init インタフェース内 NamedListInitializedPlugininit クラス内 QParserPluginCopyright © 2009-2018 RONDHUIT Co.,Ltd. All Rights Reserved.