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.

Reply via email to