I'm pretty sure you're going to be disappointed about the re-indexing part.
I'm pretty sure that WordDelimiterFilterFactory is tokenizing your input in ways you don't expect, making your use-case hard to accomplish. It's basically splitting your input on all non-alpha characters, so you're indexing see http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory I'd *strongly* suggest you examine the results of your indexing in order to understand what's possible. Get a copy of luke and examine your index or use the SOLR admin Analysis page... I suspect what you're really looking for is WhitespaceAnalyzer or Keyword On Tue, Jan 19, 2010 at 9:50 AM, <johnmu...@aol.com> wrote: > > > I want the following searches to work: > > MyField:SDD_Expedition_PCB > > This should match the word "SDD_Expedition_PCB" only, and not matching > individual words such as "SDD" or "Expedition", or "PCB". > > And the following search: > > MyField:SDD_Expedition* > > Should match any word starting with "SDD_Expedition" and ending with > anything else such as "SDD_Expedition_PBC", "SDD_Expedition_One", > "SDD_Expedition_Two", "SDD_ExpeditionSolr", "SDD_ExpeditionSolr1.4", etc, > but not matching individual words such as "SDD" or "Expedition". > > > The field type for "MyField" is (the field name is keywords): > > <field name="Keywords" type="text" indexed="true" stored="false" > required="false" multiValued="true"></field> > > And here is the analyzer I'm using: > > <fieldType name="text" class="solr.TextField" > positionIncrementGap="100"> > <analyzer type="index"> > <tokenizer class="solr.WhitespaceTokenizerFactory"/> > <!-- in this example, we will only use synonyms at query time > <filter class="solr.SynonymFilterFactory" > synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> > --> > <filter class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt"/> > <filter class="solr.WordDelimiterFilterFactory" > generateWordParts="0" generateNumberParts="1" catenateWords="1" > catenateNumbers="1" catenateAll="0"/> > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.EnglishPorterFilterFactory" > protected="protwords.txt"/> > <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> > </analyzer> > <analyzer type="query"> > <tokenizer class="solr.WhitespaceTokenizerFactory"/> > <!-- <filter class="solr.SynonymFilterFactory" > synonyms="synonyms.txt" ignoreCase="true" expand="true"/> --> > <filter class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt"/> > <filter class="solr.WordDelimiterFilterFactory" > generateWordParts="0" generateNumberParts="1" catenateWords="1" > catenateNumbers="1" catenateAll="0"/> > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.EnglishPorterFilterFactory" > protected="protwords.txt"/> > <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> > </analyzer> > </fieldType> > > Any help on how I can achieve the above is greatly appreciated. > > Btw, if at all possible, I would like to be able to achieve this search > without having to change how I'm indexing / tokenizing the data. I'm > looking for search syntax to make this work. > > -- JM > > -----Original Message----- > From: Ahmet Arslan [mailto:iori...@yahoo.com] > Sent: Tuesday, January 19, 2010 7:57 AM > To: solr-user@lucene.apache.org > Subject: Re: Tokenization and wild card search > > > I have an issue and I'm not sure how to address it, so I > > hope someone can help me. > > > > I have the following text in one of my fields: > > "ABC_Expedition_ERROR".���When I search on it > > like: "MyField:SDD_Expedition_PCB" (without quotes) it will > > fail to find me only this word �ABC_Expedition_ERROR� > > which I think is due to tokenization because of the > > underscore. > > Do you want or do not want your query MyField:SDD_Expedition_PCB to return > documents containing ABC_Expedition_ERROR? > > > My solution is: "MyField:"SDD_Expedition_PCB"" (without the > > outer quotes, but quotes around the word > > �ABC_Expedition_ERROR�).� This works fine.� > > But then, how do I search on "SDD_Expedition_PCB" with wild > > card?� For example: "MyField:SDD_Expedition*" will not > > work. > > Can you paste your field type of MyField? And give some examples what > queries should return what documents. > >