Hi Rich,
Query creation is correct only thing what causing the problem is that
Boolean + query while building the lucene query which causing all tokens to
be matched in the document (equivalent of mm=100%) even though I use mm=1
it was using BOOLEAN + query as
normal query one plus one abc
Lucene query -
+(((+nameShingle:one plus +nameShingle:plus one +nameShingle:one abc))
((+nameShingle:one plus +nameShingle:plus one abc)) ((+nameShingle:one plus
one +nameShingle:one abc)) (nameShingle:one plus one abc))

Now since my doc contains only one plus one thus --
one plus ,plus one, one plus one
thus due to Boolean + it was not matching.
Thanks,
Aman Deep Singh

On Fri, Mar 31, 2017 at 4:41 PM Rick Leir <rl...@leirtech.com> wrote:

> Hi Aman
> Did you try the Admin Analysis tool? It will show you which filters are
> effective at index and query time. It will help you understand why you are
> not getting a mach.
> Cheers -- Rick
>
> On March 31, 2017 2:36:33 AM EDT, Aman Deep Singh <
> amandeep.coo...@gmail.com> wrote:
> >Hi,
> >I was trying to use the shingle filter but it was not creating the
> >query as
> >desirable.
> >
> >my schema is
> ><fieldType name="cust_shingle" class="solr.TextField"
> >positionIncrementGap=
> >"100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/>
> ><filter
> >class="solr.ShingleFilterFactory" outputUnigrams="false"
> >maxShingleSize="4"
> >/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer>
> ></fieldType>
> ><field name="nameShingle" type="cust_shingle" indexed="true"
> >stored="true"/>
> >
> >my solr query is
> >
> http://localhost:8983/solr/productCollection/select?defType=edismax&debugQuery=true&q=one%20plus%20one%20four&qf=nameShingle&;
> >*sow=false*&wt=xml
> >
> >and it was creating the parsed query as
> ><str name="parsedquery">
> >(+(DisjunctionMaxQuery(((+nameShingle:one plus +nameShingle:plus one
> >+nameShingle:one four))) DisjunctionMaxQuery(((+nameShingle:one plus
> >+nameShingle:plus one four))) DisjunctionMaxQuery(((+nameShingle:one
> >plus
> >one +nameShingle:one four))) DisjunctionMaxQuery((nameShingle:one plus
> >one
> >four)))~1)/no_coord
> ></str>
> ><str name="parsedquery_toString">
> >*+((((+nameShingle:one plus +nameShingle:plus one +nameShingle:one
> >four))
> >((+nameShingle:one plus +nameShingle:plus one four)) ((+nameShingle:one
> >plus one +nameShingle:one four)) (nameShingle:one plus one four))~1)*
> ></str>
> >
> >
> >So ideally token creations is perfect but in the query it is using
> >boolean + operator which is causing the problem as if i have a document
> >with name as
> >"one plus one" ,according to the shingles it has to matched as its
> >token
> >will be  ("one plus","one plus one","plus one") .
> >I have tried using the q.op and played around the mm also but nothing
> >is
> >giving me the correct response.
> >Any idea how i can fetch that document even if the document is missing
> >any
> >token.
> >
> >My expected response will be getting the document
> >"one plus one" even the user query has any additional term like "one
> >plus
> >one two" and so on.
> >
> >
> >Thanks,
> >Aman Deep Singh
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.

Reply via email to