Thanks Erick, here are my responses:

1. Yes.  What I want to achieve is that when index is filtered with EdgeNgram, 
and a query that is not filtered in that way, I can do search on partial string.
2. Good suggestion, will test it.
3. ok
4. Thank you
5/6. Will remove the synonyms and word delimiterfilterfactory in query
7. will look at that using Luke.  By the way, it is the first time I saw that 
there is a tool for that.  Thank you.
8. Yes.

Will check that again, thank you.

-----Original Message-----
From: Erick Erickson [mailto:erickerick...@gmail.com] 
Sent: 2011年11月8日 9:52 下午
To: solr-user@lucene.apache.org; elleryle...@be-o.com
Subject: Re: Weird: Solr Search result and Analysis Result not match?

Several things:

1> You don't have EdgeNGramFilterFactory in your query analysis chain,
is this intentional?
2> You have a LOT of stuff going on here, you might try making your
analysis chain simpler and
     adding stuff back in until you see the error. Don't forget to re-index!
3> Analysis doesn't take into account query *parsing*, so it's
possible to get a false sense of
     assurance when the analysis page matches your expectations.
4> Even though nothing jumps out at me except the Edge.... factory,
nice job of including
     information.
5> It's unusual to expand synonyms both at query and index time,
usually one or the
     other with index time preferred.
6> Same with WordDelimiterFilterFactory. If you put all the variants
in the index, you don't
     need to put all the variants in the query and vice-versa.
7> Take a look at your actual contents, perhaps using Luke to insure
that what you expect
      to be in your index actually is.
8> You did re-index after your latest changes to your schema, right <G>?

All of this is a way of saying that I don't quite see what the problem
is, but at least there are
some avenues to explore.

Best
Erick

On Mon, Nov 7, 2011 at 9:29 PM, Ellery Leung <elleryle...@be-o.com> wrote:
> Hi all.
>
>
>
> I am using Solr 3.4 under Win 7.
>
>
>
> In schema there is a multivalue field indexed in this way:
>
> ==========================
>
> Schema:
>
> ==========================
>
> <field name="myEvent" type="myCustomText" multiValued="true" indexed="true"
> stored="true" omitNorms="true"/>
>
>
>
> <fieldType name="myCustomText" class="solr.TextField"
> positionIncrementGap="100">
>
>        <analyzer type="index">
>
>                <charFilter class="solr.MappingCharFilterFactory"
> mapping="../../filters/filter-mappings.txt"/>
>
>                <charFilter class="solr.HTMLStripCharFilterFactory"/>
>
>                <tokenizer class="solr.StandardTokenizerFactory"/>
>
>                <filter class="solr.TrimFilterFactory"/>
>
>                <filter class="solr.LowerCaseFilterFactory"/>
>
>                <filter class="solr.SynonymFilterFactory"
> synonyms="../../filters/filter-synonyms.txt" ignoreCase="true"
> expand="true"/>
>
>                <filter class="solr.ASCIIFoldingFilterFactory"/>
>
>                <filter class="solr.WordDelimiterFilterFactory"
> splitOnCaseChange="1" splitOnNumerics="1" stemEnglishPossessive="1"
> generateWordParts="1" generateNumberParts="1" catenateWords="1"
> catenateNumbers="1" catenateAll="0" preserveOriginal="1"/>
>
>                <filter class="solr.PhoneticFilterFactory"
> encoder="DoubleMetaphone" inject="true"/>
>
>                <filter class="solr.PorterStemFilterFactory"/>
>
>                <filter class="solr.EdgeNGramFilterFactory" minGramSize="1"
> maxGramSize="50" side="front"/>
>
>                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
>
>        </analyzer>
>
>        <analyzer type="query">
>
>                <charFilter class="solr.MappingCharFilterFactory"
> mapping="../../filters/filter-mappings.txt"/>
>
>                <charFilter class="solr.HTMLStripCharFilterFactory"/>
>
>                <tokenizer class="solr.StandardTokenizerFactory"/>
>
>                <filter class="solr.TrimFilterFactory"/>
>
>                <filter class="solr.LowerCaseFilterFactory"/>
>
>                <filter class="solr.SynonymFilterFactory"
> synonyms="../../filters/filter-synonyms.txt" ignoreCase="true"
> expand="true"/>
>
>                <filter class="solr.ASCIIFoldingFilterFactory"/>
>
>                <filter class="solr.WordDelimiterFilterFactory"
> splitOnCaseChange="1" splitOnNumerics="1" stemEnglishPossessive="1"
> generateWordParts="0" generateNumberParts="1" catenateWords="1"
> catenateNumbers="1" catenateAll="0" preserveOriginal="1"/>
>
>                <filter class="solr.PhoneticFilterFactory"
> encoder="DoubleMetaphone"/>
>
>                <filter class="solr.PorterStemFilterFactory"/>
>
>                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
>
>        </analyzer>
>
> </fieldType>
>
> ==========================
>
> Actual index:
>
> ==========================
>
> <arr name="myEvent">
>
> <str>2284e2</str>
>
> <str>2284e4</str>
>
> <str>2284e5</str>
>
> <str>1911e2</str>
>
> </arr>
>
>
>
> ==========================
>
> Question:
>
> ==========================
>
> Now when I do a search like this:
>
>
>
> myEvent:1911e2
>
>
>
> This should match the 4th item.  Now on "Full Interface", it does not return
> any result.  But on "analysis", matches are highlighted.
>
>
>
> By using Debug: the parsedquery is:
>
>
>
> MultiPhraseQuery(myEvent:"(1911e2 1911) (A e) 2")
>
>
>
> Parsedquery_toString:
>
>
>
> myEvent:"(1911e2 1911) (A e) 2"
>
>
>
> Can anyone please help me on this?
>
>

Reply via email to