Hi, guys! I need some advice. When sending the same dismax query to Solr 1.4 and 3.6, query results of search words analized by WordDelimiterFilterFactory are different as below:
[Search Word] test.pdf [Result] Solr1.4: Search results are analized by "test" AND "pdf" Solr3.6: Search results are analized by "test" OR "pdf" In Solr3.6, how can I recieve the same result of "test" AND "pdf" as in Solr 1.4? [Japanese Analizer] Solr1.4 -> Sen Solr3.6 -> lucene-gosen Here are some examples of debug results in solrAdmin: /*solrAdmin debug result-1.4*/ <lst name="debug"> <str name="rawquerystring">test.pdf</str> <str name="querystring">test.pdf</str> <str name="parsedquery"> +DisjunctionMaxQuery((fcontent_tsn_is:"test pdf" | fname_tbg_is:"test pdf")) () </str> <str name="parsedquery_toString"> +(fcontent_tsn_is:"test pdf" | fname_tbg_is:"test pdf") () </str> … <str name="QParser">DisMaxQParser</str> … </lst> /*solrAdmin debug result-3.6*/ <lst name="debug"> <str name="rawquerystring">test.pdf</str> <str name="querystring">test.pdf</str> <str name="parsedquery"> +DisjunctionMaxQuery(((fcontent_tsn_is:test fcontent_tsn_is:pdf) | (fname_tbg_is:test fname_tbg_is:pdf))) </str> <str name="parsedquery_toString"> +((fcontent_tsn_is:test fcontent_tsn_is:pdf) | (fname_tbg_is:test fname_tbg_is:pdf)) </str> ... <str name="QParser">ExtendedDismaxQParser</str> … </lst> The followings are request handlers used in Solr1.4/3.6: /*solrconfig.xml-1.4*/ <requestHandler name="dismax" class="solr.SearchHandler" > <lst name="defaults"> <str name="defType">dismax</str> <str name="echoParams">explicit</str> <str name="q.alt">*:*</str> <str name="qf">fcontent_tsn_is^1.0 fname_tbg_is^1.0 </str> </lst> </requestHandler> /*solrconfig.xml-3.6*/ <requestHandler name="dismax" class="solr.SearchHandler" > <lst name="defaults"> <str name="defType">edismax</str> <str name="echoParams">explicit</str> <str name="q.alt">*:*</str> <str name="qf">content_tsn_is^1.0 name_tbg_is^1.0</str> </lst> </requestHandler> The followings are schemas used in Solr1.4/3.6: /*schema.xml-1.4*/ <fieldType name="text_sen" class="solr.TextField"> <analyzer> <tokenizer class="solrbook.analysis.SenTokenizerFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.TrimFilterFactory" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" tokenizerFactory="solrbook.analysis.SenTokenizerFactory" ignoreCase="true" expand="true"/> </analyzer> </fieldType> <fields> <dynamicField name="*_tsn_is" type="text_sen" indexed="true" stored="true" compressed="false" termVectors="true" termPositions="true" termOffsets="true" /> <dynamicField name="*_tbg_is" type="text_bigram" indexed="true" stored="true" compressed="false" termVectors="true" termPositions="true" termOffsets="true" /> </fields> <solrQueryParser defaultOperator="AND"/> /*schema.xml-3.6*/ <fieldType name="text_sen" class="solr.TextField"> <analyzer> <charFilter class="solr.MappingCharFilterFactory" mapping="ja-mapping.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <tokenizer class="solr.GosenTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.GosenBasicFormFilterFactory" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.TrimFilterFactory" /> </analyzer> </fieldType> <fields> <dynamicField name="*_tsn_is" type="text_sen" indexed="true" stored="true" compressed="false" termVectors="true" termPositions="true" termOffsets="true" /> <dynamicField name="*_tbg_is" type="text_bigram" indexed="true" stored="true" compressed="false" termVectors="true" termPositions="true" termOffsets="true" /> </fields> <solrQueryParser defaultOperator="AND"/> Regards.