You might want to add autoGeneratePhraseQueries="true" to your field type, but I don't think that would cause a break when going from 3.6 to 4.x. The default for that attribute changed in Solr 3.5. What release was your data indexed using? There may have been some subtle word delimiter filter changes between 3.x and 4.x.

Read:
http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201202.mbox/%3cc0551c512c863540bc59694a118452aa0764a...@its-embx-03.adsroot.itcs.umich.edu%3E


-----Original Message----- From: Thomas Michael Engelke
Sent: Wednesday, January 29, 2014 11:16 AM
To: solr-user@lucene.apache.org
Subject: Re: Not finding part of fulltext field when word ends in dot

The fieldType definition is a tad on the longer side:

               <fieldType name="text" class="solr.TextField"
positionIncrementGap="100">
                       <analyzer type="index">
                               <tokenizer
class="solr.WhitespaceTokenizerFactory"/>

                               <filter
class="solr.WordDelimiterFilterFactory"
                                       catenateWords="1"
                                       catenateNumbers="1"
                                       generateNumberParts="1"
                                       splitOnCaseChange="1"
                                       generateWordParts="1"
                                       catenateAll="0"
                                       preserveOriginal="1"
                                       splitOnNumerics="0"
                               />

                               <filter
class="solr.LowerCaseFilterFactory"/>
                               <filter class="solr.SynonymFilterFactory"
synonyms="german/synonyms.txt" ignoreCase="true" expand="true"/>
                               <filter
class="solr.DictionaryCompoundWordTokenFilterFactory"

dictionary="german/german-common-nouns.txt"
                                       minWordSize="5"
                                       minSubwordSize="4"
                                       maxSubwordSize="15"
                                       onlyLongestMatch="true"
                               />

                               <filter class="solr.StopFilterFactory"
words="german/stopwords.txt" ignoreCase="true"
enablePositionIncrements="true"/>
                               <filter
class="solr.SnowballPorterFilterFactory" language="German2"
protected="german/protwords.txt"/>
                               <filter
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                       </analyzer>
                       <analyzer type="query">
                               <tokenizer
class="solr.WhitespaceTokenizerFactory"/>

                               <filter
class="solr.WordDelimiterFilterFactory"
                                       catenateWords="0"
                                       catenateNumbers="0"
                                       generateWordParts="1"
                                       splitOnCaseChange="1"
                                       generateNumberParts="1"
                                       catenateAll="0"
                                       preserveOriginal="1"
                                       splitOnNumerics="0"
                               />
                               <filter
class="solr.LowerCaseFilterFactory"/>
                               <filter class="solr.StopFilterFactory"
words="german/stopwords.txt" ignoreCase="true"
enablePositionIncrements="true"/>
                               <filter
class="solr.SnowballPorterFilterFactory" language="German2"
protected="german/protwords.txt"/>
                               <filter
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                       </analyzer>
               </fieldType>


Thank you for taking a look.


2014-01-29 Jack Krupansky <j...@basetechnology.com>

What field type and analyzer/tokenizer are you using?

-- Jack Krupansky

-----Original Message----- From: Thomas Michael Engelke Sent: Wednesday,
January 29, 2014 10:45 AM To: solr-user@lucene.apache.org Subject: Not
finding part of fulltext field when word ends in dot
Hello everybody,

we have a legacy solr installation in version 3.6.0.1. One of the indices
defines a field named "content" as a fulltext field where a product
description will reside. One of the records indexed contains the following
data (excerpt):

z. B. in der Serie 26KA.

I had the problem that searching the value "26KA" didn't find anything.
Using the analyzer of the adminstrative interface and using the full text
on one hand and "26KA" as the query string, I can see how the search string is transformed by the used filter factories. The WordDelimiterFilterFactory transforms the "26KA." into "26KA", which is displayed like this (excerpt):

73 74  75    76
in der Serie 26KA.
            26KA

It seems that it stripped the "26KA." of the dot. Using the option to
highlight matches, an analysis search of "26KA" shows the lower of the two
entries matches (after reaching the LowerCaseFilterFactory). However,
querying the index using the query interface doesn't show any matches.

I discovered that adding an asterisk to the search seems to work, as does
adding the dot. I am puzzled by this, as I thought that the second added
entry was the word actually indexed. I've tried looking up the definition
of the administrative interface, but the documentation only specifies this
for the latest version, where the display is different and (at least in the
sample) doesn't show such "duplication".

Can anybody shed some light onto this?


Reply via email to