Hello,

I am trying to have the input "darkknight" match documents containing either 
"dark knight" and "darkknight".
The reverse should also work ("dark knight" matching "dark knight" and 
"darkknight") but it doesn't. Does anyone know why?


When I run the following query I get the expected response with the two 
documents matched

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">1</int>
  <lst name="params">
    <str name="fl">name</str>
    <str name="indent">true</str>
    <str name="q">name:darkknight</str>
    <str name="wt">xml</str>
  </lst>
</lst>
<result name="response" numFound="2" start="0">
  <doc>
    <str name="name">Batman, the darkknight Rises</str></doc>
  <doc>
    <str name="name">Batman, the dark knight Rises</str></doc>
</result>
</response>


HOWEVER when I run the same query looking for "dark knight" two words I get 
only 1 document matched as shows the response :

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
  <lst name="params">
    <str name="fl">name</str>
    <str name="indent">true</str>
    <str name="q">name:dark knight</str>
    <str name="wt">xml</str>
  </lst>
</lst>
<result name="response" numFound="1" start="0">
  <doc>
    <str name="name">Batman, the dark knight Rises</str></doc>
</result>
</response>

I have these documents as input :

<doc>
  <field name="id">bat1</field>
  <field name="name">Batman, the dark knight Rises</field>
</doc>
<doc>
  <field name="id">bat2</field>
  <field name="name">Batman, the darkknight Rises</field>
</doc>

And I defined this analyser :

      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ShingleFilterFactory"
                tokenSeparator=""
                outputUnigrams="true"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ShingleFilterFactory"
                tokenSeparator=""
                outputUnigrams="true"
                outputUnigramIfNoNgrams="true"/>
      </analyzer>

Reply via email to