Oops, I'm Sorry! I found some mistakes on previous posted source.( Main class
name has been wrong :<)
This is the collect analyzer source.
-------------------------------------------------------------------------------------------------------
public class MyCustomQueryAnalyzer extends Analyzer{
public static final Version LUCENE_VERSION = Version.LUCENE_29;
public static int QUERY_MIN_LEN_WORD_FILTER = 1;
public static int QUERY_MAX_LEN_WORD_FILTER = 40;
public int elapsedTime = 0;
@Override
public TokenStream tokenStream(String paramString, Reader reader) {
StandardTokenizer tokenizer = new StandardTokenizer(
du.utas.mcrdr.ir.lucene.WebDocIR.LUCENE_VERSION, reader );
TokenStream tokenStream = new LengthFilter( tokenizer,
QUERY_MIN_LEN_WORD_FILTER,
QUERY_MAX_LEN_WORD_FILTER );
tokenStream = new LowerCaseFilter( tokenStream );
//My custom stemmer method
MyCustomSingleWordStemmer stemer = new
MyCustomSingleWordStemmer(QUERY_MIN_LEN_WORD_FILTER,
QUERY_MAX_LEN_WORD_FILTER);
//My custom analyzer filter. this filter return sub-merged query.
//ex) INPUT : flyaway
// RETURN VALUE : fly +body:away
tokenStream = new KLTQueryStemFilter( tokenStream, stemer, this );
return tokenStream;
}
}
-------------------------------------------------------------------------------------------------------
[Additional info]
1. MyCustomQueryAnalyzer made outside of Solr.
I made this analyzer outside of the solr package and make it to ~.jar
and located at
~/Solr/example/work/Jetty_0_0_0_0_8982_solr.war__solr__-2c5peu/webapp/WEB-INF/lib
2. I edited field type and field name in scheme.xml which to be searched.
<field name="body" type="textTp" indexed="true" stored="true"
omitNorms="true"/>
<fieldType name="textTp" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query"
class="com.testsolr.ir.customAnalyzer.MyCustomQueryAnalyzer">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldType>
This is my custom scheme.xml and custom search field type.
3. I've got this xml result when I append &debugQuery=on to my search url.
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
- <response>
- <lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
- <lst name="params">
<str name="debugQuery">on</str>
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">+body:flyaway</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="0" start="0" />
- <lst name="debug">
<str name="rawquerystring">+body:flyaway</str>
<str name="querystring">+body:flyaway</str>
<str name="parsedquery">+body:fly +body:away/str>
<str name="parsedquery_toString">+body:fly +body:away/str>
<lst name="explain" />
<str name="QParser">LuceneQParser</str>
- <lst name="timing">
<double name="time">0.0</double>
- <lst name="prepare">
<double name="time">0.0</double>
- <lst name="org.apache.solr.handler.component.QueryComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.FacetComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.MoreLikeThisComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.HighlightComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.StatsComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.DebugComponent">
<double name="time">0.0</double>
</lst>
</lst>
- <lst name="process">
<double name="time">0.0</double>
- <lst name="org.apache.solr.handler.component.QueryComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.FacetComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.MoreLikeThisComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.HighlightComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.StatsComponent">
<double name="time">0.0</double>
</lst>
- <lst name="org.apache.solr.handler.component.DebugComponent">
<double name="time">0.0</double>
</lst>
</lst>
</lst>
</lst>
</response>
------------------------------------------------------------------------
I really appreciate your advice~ :)
--
View this message in context:
http://lucene.472066.n3.nabble.com/How-can-i-get-collect-search-result-from-custom-filtered-query-tp1723055p1723815.html
Sent from the Solr - User mailing list archive at Nabble.com.