1. My general process for a schema change (I know it's overkill) is delete
the data directory, reload, index data, reload again.

2. I'm using schema version 1.5 on Solr 3.6.2.

<schema name="SearchSpringDefault" version="1.5">

3. LuceneQParser, but I've also tried dismax and edismax.

Here's my solrQueryParser field in my schema, I think OR is correct for
this.
<solrQueryParser defaultOperator="OR"/>

James


[image: SearchSpring | Findability Unleashed]

James Bathgate | Sr. Developer

Toll Free (888) 643-9043 x610 - Fax (719) 358-2027

4291 Austin Bluffs Pkwy #206 | Colorado Springs, CO 80918
www.searchspring.net       <http://www.searchspring.net>


On Thu, Jul 11, 2013 at 2:29 PM, Jack Krupansky <j...@basetechnology.com>wrote:

> A couple of possibilities:
>
> 1. Make sure to reload the core.
> 2. Check that the Solr schema version is new enough to recognize
> autoGeneratePhraseQueries.
> 3. What query parser are you using?
>
>
> -- Jack Krupansky
>
> -----Original Message----- From: James Bathgate
> Sent: Thursday, July 11, 2013 5:26 PM
>
> To: solr-user@lucene.apache.org
> Subject: Re: Partial Matching in both query and field
>
> I just noticed I pasted the wrong fieldType with the extra tokenizer not
> commented out.
>
>    <fieldType name="ngram" class="solr.TextField"
> positionIncrementGap="100" autoGeneratePhraseQueries="**false">
>      <analyzer type="index">
>        <tokenizer class="solr.**WhitespaceTokenizerFactory"/>
>        <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt" enablePositionIncrements="**true"/>
>        <filter class="solr.**SynonymFilterFactory" synonyms="synonyms.txt"
> ignoreCase="true" expand="true"/>
>        <filter class="solr.**WordDelimiterFilterFactory"
> generateWordParts="1" generateNumberParts="1" catenateWords="1"
> catenateNumbers="1" catenateAll="1" splitOnCaseChange="0"
> splitOnNumerics="0" preserveOriginal="0"/>
>        <filter class="solr.**LowerCaseFilterFactory"/>
>        <filter class="solr.**PatternReplaceFilterFactory" pattern="0"
> replacement="o" replace="all"/>
>        <filter class="solr.**PatternReplaceFilterFactory" pattern="1|l"
> replacement="i" replace="all"/>
>        <filter class="solr.**NGramFilterFactory" minGramSize="4"
> maxGramSize="16"/>
>        <filter class="solr.**RemoveDuplicatesTokenFilterFac**tory"/>
>      </analyzer>
>      <analyzer type="query">
>        <tokenizer class="solr.**NGramTokenizerFactory" minGramSize="4"
> maxGramSize="16" />
>        <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt" enablePositionIncrements="**true"/>
>        <filter class="solr.**PatternReplaceFilterFactory"
> pattern="[^A-Za-z0-9]+" replacement="" replace="all"/>
>        <filter class="solr.**LowerCaseFilterFactory"/>
>        <filter class="solr.**PatternReplaceFilterFactory" pattern="0"
> replacement="o" replace="all"/>
>        <filter class="solr.**PatternReplaceFilterFactory" pattern="1|l"
> replacement="i" replace="all"/>
>        <filter class="solr.**RemoveDuplicatesTokenFilterFac**tory"/>
>      </analyzer>
>    </fieldType>
>
>
> [image: SearchSpring | Findability Unleashed]
>
> James Bathgate | Sr. Developer
>
> Toll Free (888) 643-9043 x610 - Fax (719) 358-2027
>
> 4291 Austin Bluffs Pkwy #206 | Colorado Springs, CO 80918
> www.searchspring.net       <http://www.searchspring.net>
>
>
>
> On Thu, Jul 11, 2013 at 2:15 PM, James Bathgate <ja...@b7interactive.com>*
> *wrote:
>
>  Jack,
>>
>> This still isn't working. I just upgraded to 3.6.2 to verify that wasn't
>> the issue.
>>
>> Here's query information:
>>
>> <lst name="params">
>>
>> <str name="debugQuery">on</str>
>> <str name="indent">on</str>
>> <str name="start">0</str>
>> <str name="q">0_extrafield1_n:**20454</str>
>> <str name="rows">10</str>
>> <str name="version">2.2</str>
>> </lst>
>> </lst>
>> <result name="response" numFound="0" start="0"/>
>> <lst name="debug">
>> <str name="rawquerystring">0_**extrafield1_n:20454</str>
>> <str name="querystring">0_**extrafield1_n:20454</str>
>> <str name="parsedquery">**PhraseQuery(0_extrafield1_n:"**2o45 o454
>> 2o454")</str>
>>
>> <str name="parsedquery_toString">0_**extrafield1_n:"2o45 o454
>> 2o454"</str>
>> <lst name="explain"/>
>> <str name="QParser">LuceneQParser</**str>
>>
>>
>> Here's the applicable lines from schema.xml:
>>
>>     <fieldType name="ngram" class="solr.TextField"
>> positionIncrementGap="100" autoGeneratePhraseQueries="**false">
>>
>>       <analyzer type="index">
>>         <tokenizer class="solr.**WhitespaceTokenizerFactory"/>
>>         <filter class="solr.StopFilterFactory" ignoreCase="true"
>> words="stopwords.txt" enablePositionIncrements="**true"/>
>>         <filter class="solr.**SynonymFilterFactory"
>> synonyms="synonyms.txt"
>> ignoreCase="true" expand="true"/>
>>         <filter class="solr.**WordDelimiterFilterFactory"
>> generateWordParts="1" generateNumberParts="1" catenateWords="1"
>> catenateNumbers="1" catenateAll="1" splitOnCaseChange="0"
>> splitOnNumerics="0" preserveOriginal="0"/>
>>         <filter class="solr.**LowerCaseFilterFactory"/>
>>         <filter class="solr.**PatternReplaceFilterFactory" pattern="0"
>> replacement="o" replace="all"/>
>>         <filter class="solr.**PatternReplaceFilterFactory" pattern="1|l"
>> replacement="i" replace="all"/>
>>         <filter class="solr.**NGramFilterFactory" minGramSize="4"
>> maxGramSize="16"/>
>>         <filter class="solr.**RemoveDuplicatesTokenFilterFac**tory"/>
>>       </analyzer>
>>       <analyzer type="query">
>>         <tokenizer class="solr.**NGramTokenizerFactory" minGramSize="4"
>> maxGramSize="16" />
>>         <tokenizer class="solr.**WhitespaceTokenizerFactory"/>
>>         <filter class="solr.StopFilterFactory" ignoreCase="true"
>> words="stopwords.txt" enablePositionIncrements="**true"/>
>>         <filter class="solr.**PatternReplaceFilterFactory"
>> pattern="[^A-Za-z0-9]+" replacement="" replace="all"/>
>>         <filter class="solr.**LowerCaseFilterFactory"/>
>>         <filter class="solr.**PatternReplaceFilterFactory" pattern="0"
>> replacement="o" replace="all"/>
>>         <filter class="solr.**PatternReplaceFilterFactory" pattern="1|l"
>> replacement="i" replace="all"/>
>>         <!--<filter class="solr.**NGramFilterFactory" minGramSize="4"
>> maxGramSize="4" />-->
>>
>>         <filter class="solr.**RemoveDuplicatesTokenFilterFac**tory"/>
>>       </analyzer>
>>     </fieldType>
>>
>>  <dynamicField name="*_n" type="ngram" indexed="true" stored="true" />
>>
>> It looks like it's generating phrases to me even though I have it set to
>> false.
>>
>> James
>>
>>
>> [image: SearchSpring | Findability Unleashed]
>>
>> James Bathgate | Sr. Developer
>>
>> Toll Free (888) 643-9043 x610 - Fax (719) 358-2027
>>
>> 4291 Austin Bluffs Pkwy #206 | Colorado Springs, CO 80918
>> www.searchspring.net       <http://www.searchspring.net>
>>
>>
>> On Tue, Jul 2, 2013 at 2:47 PM, Jack Krupansky <j...@basetechnology.com>*
>> *wrote:
>>
>>  Ahhh... you put autoGeneratePhraseQueries="****false"  on the field -
>>> but
>>>
>>> it needs to be on the field type.
>>>
>>> You can see from the parsed query that it generated the phrase.
>>>
>>>
>>> -- Jack Krupansky
>>>
>>> -----Original Message----- From: James Bathgate
>>> Sent: Tuesday, July 02, 2013 5:35 PM
>>> To: solr-user@lucene.apache.org
>>> Subject: Re: Partial Matching in both query and field
>>>
>>>
>>> Jack,
>>>
>>> I've already tried that, here's my query:
>>>
>>> <str name="debugQuery">on</str>
>>> <str name="indent">on</str>
>>> <str name="start">0</str>
>>> <str name="q">0_extrafield1_n:****20454</str>
>>>
>>> <str name="q.op">OR</str>
>>> <str name="rows">10</str>
>>> <str name="version">2.2</str>
>>>
>>> Here's the parsed query:
>>>
>>> <str name="parsedquery_toString">0_****extrafield1_n:"2o45 o454
>>>
>>> 2o454"</str>
>>>
>>> Here's the applicable lines from schema.xml:
>>>
>>>    <fieldType name="ngram" class="solr.TextField"
>>> positionIncrementGap="100">
>>>      <analyzer type="index">
>>>        <tokenizer class="solr.****WhitespaceTokenizerFactory"/>
>>>
>>>        <filter class="solr.StopFilterFactory" ignoreCase="true"
>>> words="stopwords.txt" enablePositionIncrements="****true"/>
>>>        <filter class="solr.****SynonymFilterFactory"
>>>
>>> synonyms="synonyms.txt"
>>> ignoreCase="true" expand="true"/>
>>>        <filter class="solr.****WordDelimiterFilterFactory"
>>>
>>> generateWordParts="1" generateNumberParts="1" catenateWords="1"
>>> catenateNumbers="1" catenateAll="1" splitOnCaseChange="0"
>>> splitOnNumerics="0" preserveOriginal="0"/>
>>>        <filter class="solr.****LowerCaseFilterFactory"/>
>>>        <filter class="solr.****PatternReplaceFilterFactory" pattern="0"
>>>
>>> replacement="o" replace="all"/>
>>>        <filter class="solr.****PatternReplaceFilterFactory"
>>> pattern="1|l"
>>>
>>> replacement="i" replace="all"/>
>>>        <filter class="solr.****NGramFilterFactory" minGramSize="4"
>>> maxGramSize="16"/>
>>>        <filter class="solr.****RemoveDuplicatesTokenFilterFac****tory"/>
>>>      </analyzer>
>>>      <analyzer type="query">
>>>        <tokenizer class="solr.****NGramTokenizerFactory" minGramSize="4"
>>>
>>> maxGramSize="16" />
>>>        <filter class="solr.StopFilterFactory" ignoreCase="true"
>>> words="stopwords.txt" enablePositionIncrements="****true"/>
>>>        <filter class="solr.****PatternReplaceFilterFactory"
>>>
>>> pattern="[^A-Za-z0-9]+" replacement="" replace="all"/>
>>>        <filter class="solr.****LowerCaseFilterFactory"/>
>>>        <filter class="solr.****PatternReplaceFilterFactory" pattern="0"
>>>
>>> replacement="o" replace="all"/>
>>>        <filter class="solr.****PatternReplaceFilterFactory"
>>> pattern="1|l"
>>>
>>> replacement="i" replace="all"/>
>>>        <filter class="solr.****RemoveDuplicatesTokenFilterFac****tory"/>
>>>
>>>      </analyzer>
>>>    </fieldType>
>>>
>>> <dynamicField name="*_n" type="ngram" indexed="true" stored="true"
>>> autoGeneratePhraseQueries="****false" />
>>>
>>>
>>>
>>> James
>>>
>>>
>>> [image: SearchSpring | Findability Unleashed]
>>>
>>> James Bathgate | Sr. Developer
>>>
>>> Toll Free (888) 643-9043 x610 - Fax (719) 358-2027
>>>
>>> 4291 Austin Bluffs Pkwy #206 | Colorado Springs, CO 80918
>>> www.searchspring.net       <http://www.searchspring.net>
>>>
>>>
>>>
>>> On Tue, Jul 2, 2013 at 2:22 PM, Jack Krupansky <j...@basetechnology.com
>>> >*
>>> *wrote:
>>>
>>>
>>>  You will need to set q.op to "OR", and... use a field type that has the
>>>
>>>> autoGeneratePhraseQueries attribute set to "false".
>>>>
>>>> -- Jack Krupansky
>>>>
>>>> -----Original Message----- From: James Bathgate
>>>> Sent: Tuesday, July 02, 2013 5:10 PM
>>>> To: solr-user@lucene.apache.org
>>>> Subject: Partial Matching in both query and field
>>>>
>>>>
>>>> Given a string of "123456" and a search query "923459", what should the
>>>> schema look like to consider this a match because at least 4 consecutive
>>>> in
>>>> characters the query match 4 consecutive characters in the data? I'm
>>>> trying
>>>> an NGramFilterFactory on the index and NGramTokenizerFactory on the
>>>> query
>>>> in the schema, but that's not working.
>>>>
>>>> I believe the problem is 'field:923459' is parsed as 'field:"9234 2345
>>>> 3459"' instead of 'field:9234 field:2345 field:3459'.
>>>>
>>>> [image: SearchSpring | Findability Unleashed]
>>>>
>>>> James Bathgate | Sr. Developer
>>>>
>>>> Toll Free (888) 643-9043 x610 - Fax (719) 358-2027
>>>>
>>>> 4291 Austin Bluffs Pkwy #206 | Colorado Springs, CO 80918
>>>> www.searchspring.net       <http://www.searchspring.net>
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to