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, getName
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getMetricRegistry, getMetricsSnapshot, registerMetricName
public QParser createParser(java.lang.String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)
createParser
クラス内 QParserPlugin
public 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
インタフェース内 NamedListInitializedPlugin
init
クラス内 QParserPlugin
Copyright © 2009-2018 RONDHUIT Co.,Ltd. All Rights Reserved.