Sorry for this lengthy post, but I wanted to be complete.

The only occurence of edismax in solrconfig.xml is this one:

        <requestHandler name="/scoresearch" class="solr.SearchHandler"
default="true">
           
                        <lst name="defaults">
                          <str name="defType">edismax</str>    
                          <str name="echoParams">explicit</str>
                          <int name="rows">10</int>
                         
                          <str name="qf">double_score</str>
                          <str name="debug">false</str>
                          <str name="q.alt">*:*</str>
                </lst>
        </requestHandler>
        
I don't have a requestHandler named "/select".


Also, removing the gramming definitely helped! :-)

I tried to simplify my setup first and then expand, so what I have now is
this:

        
        <fieldType name="searchtext_nl" class="solr.TextField"
positionIncrementGap="100">
      <analyzer type="index">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>       
                <filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords_nl.txt"/>               
                <filter class="solr.LowerCaseFilterFactory"/> 
                <filter class="solr.SnowballPorterFilterFactory" language="Kp"
protected="protwords_nl.txt"></filter>
                
                
      </analyzer>
      <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>   
                <filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords_nl.txt"/>                               
                <filter class="solr.LowerCaseFilterFactory"/> 
                <filter class="solr.SnowballPorterFilterFactory" language="Kp"
protected="protwords_nl.txt"></filter>
                
                
      </analyzer>
    </fieldType>

        <field name="title_search_global" type="searchtext_nl" indexed="true"
stored="true"/>
        
In my database I have these 4 values for "title" that populate
"title_search_global"   
        
"Hi there dier something else"
"Hi there dieren zaak something else"
"Hi there dierenzaak something else"
"Hi there dierzaak something else"

ps. "dier" is singular of plural "dieren". 

Using this query:
http://localhost:8983/solr/search-global/select?q=title_search_global%3A(dieren+zaak)&fq=(lang%3A%22nl%22+OR+lang%3A%22all%22)&fl=id%2Ctitle&wt=xml&indent=true&defType=edismax&qf=title_search_global&stopwords=true&lowercaseOperators=true&debug=true

These results are found:
"Hi there dier something else"
"Hi there dieren zaak something else"

And these are NOT:
"Hi there dierenzaak something else"
"Hi there dierzaak something else"

I'd expect it should be fairly easy (although I don't know how) to also
include result "dierenzaak", by compounding the 2 query values. And yes you
are correct: in Dutch "dieren zaak" would mean the same as "dierenzaak". Not
sure what logic would also include "dierzaak"

Regarding your question: yes, I do consider "dieren zaak soemthingelse" an
exact match of "dieren zaak"
So I also checked the usage of pf parameters with edismax (based on these
links:
https://lucene.apache.org/solr/guide/6_6/the-extended-dismax-query-parser.html,
http://blog.thedigitalgroup.com/vijaym/understanding-phrasequery-and-slop-in-solr/)
And also for dismax:
https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html#TheDisMaxQueryParser-Theqs_QueryPhraseSlop_Parameter

But I can't find any examples how to actually use these parameters? 


The search results, including debug info is here:


<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">7</int>
        <lst name="params">
            <str name="q">title_search_global:(dieren zaak)</str>
            <str name="defType">edismax</str>
            <str name="debug">true</str>
            <str name="indent">true</str>
            <str name="qf">title_search_global</str>
            <str name="fl">id,title</str>
            <str name="fq">(lang:"nl" OR lang:"all")</str>
            <str name="wt">xml</str>
            <str name="lowercaseOperators">true</str>
            <str name="stopwords">true</str>
        </lst>
    </lst>
    <result name="response" numFound="2" start="0">
        <doc>
            <str name="title">dieren zaak</str>
            <str name="id">115_3699638</str>
        </doc>
        <doc>
            <str name="title">dier</str>
            <str name="id">115_3699637</str>
        </doc>
    </result>
    <lst name="debug">
        <str name="rawquerystring">title_search_global:(dieren zaak)</str>
        <str name="querystring">title_search_global:(dieren zaak)</str>
        <str name="parsedquery">
(+(title_search_global:dier title_search_global:zaak))/no_coord
</str>
        <str name="parsedquery_toString">
+(title_search_global:dier title_search_global:zaak)
</str>
        <lst name="explain">
            <str name="115_3699638">
5.489122 = (MATCH) sum of: 2.4387078 = (MATCH)
weight(title_search_global:dier in 51) [DefaultSimilarity], result of:
2.4387078 = score(doc=51,freq=1.0 = termFreq=1.0 ), product of: 0.66654336 =
queryWeight, product of: 5.8539815 = idf(docFreq=3, maxDocs=513) 0.113861546
= queryNorm 3.6587384 = fieldWeight in 51, product of: 1.0 = tf(freq=1.0),
with freq of: 1.0 = termFreq=1.0 5.8539815 = idf(docFreq=3, maxDocs=513)
0.625 = fieldNorm(doc=51) 3.050414 = (MATCH) weight(title_search_global:zaak
in 51) [DefaultSimilarity], result of: 3.050414 = score(doc=51,freq=1.0 =
termFreq=1.0 ), product of: 0.7454662 = queryWeight, product of: 6.5471287 =
idf(docFreq=1, maxDocs=513) 0.113861546 = queryNorm 4.091955 = fieldWeight
in 51, product of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0
6.5471287 = idf(docFreq=1, maxDocs=513) 0.625 = fieldNorm(doc=51)
</str>
            <str name="115_3699637">
1.9509662 = (MATCH) product of: 3.9019325 = (MATCH) sum of: 3.9019325 =
(MATCH) weight(title_search_global:dier in 50) [DefaultSimilarity], result
of: 3.9019325 = score(doc=50,freq=1.0 = termFreq=1.0 ), product of:
0.66654336 = queryWeight, product of: 5.8539815 = idf(docFreq=3,
maxDocs=513) 0.113861546 = queryNorm 5.8539815 = fieldWeight in 50, product
of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 5.8539815 =
idf(docFreq=3, maxDocs=513) 1.0 = fieldNorm(doc=50) 0.5 = coord(1/2)
</str>
            <str name="110_141">
0.9754831 = (MATCH) product of: 1.9509662 = (MATCH) sum of: 1.9509662 =
(MATCH) weight(title_search_global:dier in 132) [DefaultSimilarity], result
of: 1.9509662 = score(doc=132,freq=1.0 = termFreq=1.0 ), product of:
0.66654336 = queryWeight, product of: 5.8539815 = idf(docFreq=3,
maxDocs=513) 0.113861546 = queryNorm 2.9269907 = fieldWeight in 132, product
of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 5.8539815 =
idf(docFreq=3, maxDocs=513) 0.5 = fieldNorm(doc=132) 0.5 = coord(1/2)
</str>
        </lst>
        <str name="QParser">ExtendedDismaxQParser</str>
        <null name="altquerystring" />
        <null name="boost_queries" />
        <arr name="parsed_boost_queries" />
        <null name="boostfuncs" />
        <arr name="filter_queries">
            <str>(lang:"nl" OR lang:"all")</str>
        </arr>
        <arr name="parsed_filter_queries">
            <str>lang:nl lang:all</str>
        </arr>
        <lst name="timing">
            <double name="time">7.0</double>
            <lst name="prepare">
                <double name="time">4.0</double>
                <lst name="query">
                    <double name="time">4.0</double>
                </lst>
                <lst name="facet">
                    <double name="time">0.0</double>
                </lst>
                <lst name="mlt">
                    <double name="time">0.0</double>
                </lst>
                <lst name="highlight">
                    <double name="time">0.0</double>
                </lst>
                <lst name="stats">
                    <double name="time">0.0</double>
                </lst>
                <lst name="debug">
                    <double name="time">0.0</double>
                </lst>
            </lst>
            <lst name="process">
                <double name="time">3.0</double>
                <lst name="query">
                    <double name="time">0.0</double>
                </lst>
                <lst name="facet">
                    <double name="time">0.0</double>
                </lst>
                <lst name="mlt">
                    <double name="time">0.0</double>
                </lst>
                <lst name="highlight">
                    <double name="time">0.0</double>
                </lst>
                <lst name="stats">
                    <double name="time">0.0</double>
                </lst>
                <lst name="debug">
                    <double name="time">3.0</double>
                </lst>
            </lst>
        </lst>
    </lst>
</response>


PS. had to laugh out loud about that professor joke :-D



--
Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html

Reply via email to