Hello All,
I have my field description listed below, but I don't think its pertinent. As
my issue seems to be with the query parser.
I'm currently using an edismax subquery clause to help with my searching as
such:
_query_:"{!type=edismax qf='ref_expertise'}\(nonlinear OR soliton\) AND
\"optical lattice\""
translates correctly to
+(+((ref_expertise:nonlinear) (ref_expertise:soliton)) +(ref_expertise:"optical
lattice"))
but the users expect the default operator to be AND (it is in all simpler
searches), however nothing I can do here gets me that same result as above when
the search is:
_query_:"{!type=edismax qf='ref_expertise'}\(nonlinear OR soliton\) \"optical
lattice\""
this gets converted to:
+(((ref_expertise:nonlinear) (ref_expertise:soliton)) (ref_expertise:"optical
lattice"))
where the "optical lattice" is optional.
These produce the same results, trying q.op and mm. Also the default search
term as set in the solr.config is AND.
_query_:"{!type=edismax q.op=AND qf='ref_expertise'}\(nonlinear OR
soliton\)\"optical lattice\""
_query_:"{!type=edismax mm=1.0 qf='ref_expertise'}\(nonlinear OR
soliton\)\"optical lattice\""
Any ideas???
Thanks In Advance
Steven Fuchs
<fieldType name="intl_string" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
</analyzer>
</fieldType>