Fantastic, thanks, yes I completely overlooked that case, separating the
analysers worked a treat.

Had also posted on stack overflow but the mailing list proved to be
superior!

Many thanks,

Daniel

On 27 October 2011 13:09, Erick Erickson <erickerick...@gmail.com> wrote:

> Take a look at your admin/analysis page and put your tokens in for both
> index and query times. What I think you'll see is that the # is being
> stripped at query time due to the first PatternReplaceFilterFactory.
>
> You probably want to split your analyzers into an index-time and query-time
> pair and do the appropriate replacements to keep # at quer time.
>
>
> Best
> Erick
>
> On Tue, Oct 25, 2011 at 12:27 PM, Daniel Bradley
> <daniel.brad...@adfero.co.uk> wrote:
> > When running a search such as:
> >  field_name:#
> >  field_name:"#"
> >  field_name:"\#"
> >
> > where there is a record with the value of exactly "#", solr returns 0
> rows.
> >
> > The workaround we are having to use is to use a range query on the
> > field such as:
> >  field_name:[# TO #]
> > and this returns the correct documents.
> >
> > Use case details:
> > We have a field that indexes a text field and calculates a "letter
> > group". This keeps only the first significant character from a value
> > (number or letter), and if it is a number the simply stores "#" as we
> > want all numbered items grouped together.
> >
> > I'm also aware that we could also fix this by using a specific number
> > instead of the hash character, however, I though I'd raise this to see
> > if there is a wider issue. I've listed some specific details below.
> >
> > Thanks for your time,
> >
> > Daniel Bradley
> >
> >
> > Field definition:
> >    <fieldType name="letterGrouping" class="solr.TextField"
> > sortMissingLast="true" omitNorms="true">
> >      <analyzer>
> >        <tokenizer class="solr.PatternTokenizerFactory"
> > pattern="^([a-zA-Z0-9]).*" group="1"/>
> >        <filter class="solr.LowerCaseFilterFactory" />
> >        <filter class="solr.TrimFilterFactory" />
> >        <filter class="solr.PatternReplaceFilterFactory"
> >                pattern="([^a-z0-9])" replacement="" replace="all"
> >        />
> >        <filter class="solr.PatternReplaceFilterFactory"
> >                pattern="([0-9])" replacement="#" replace="all"
> >        />
> >      </analyzer>
> >    </fieldType>
> >
> > Server information:
> > Solr Specification Version: 3.2.0
> > Solr Implementation Version: 3.2.0 1129474 - rmuir - 2011-05-30 23:07:15
> > Lucene Specification Version: 3.2.0
> > Lucene Implementation Version: 3.2.0 1129474 - 2011-05-30 23:08:57
>  >
>

Reply via email to