You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@lucene.apache.org by kumaran <ku...@gmail.com> on 2014/04/10 07:50:15 UTC

problem in using distanceFilter in booleanFilter (using FilterClause)

Hi All,

i am trying to add Termfilter and DistanceFilter in BooleanFilter using
FilterClause. But i am getting the below mentioned error. Please check my
code and guide me.


*Code:*

> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
> true);
>         DistanceFieldComparatorSource distComp = new
> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>         Sort distSort = new Sort(new SortField("", distComp,true));
>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
> new StandardAnalyzer(Version.LUCENE_30));
>         Query query = parser.parse(strQuery);
>         System.out.println(" distance sort details ::: "+ distSort);
>         BooleanFilter boolFilter = new BooleanFilter();
>         FilterClause filterClause2 = new
> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>         boolFilter.add(filterClause2);
>
>         Term term = new Term("city", "chengalpat");
>         TermsFilter filter = new TermsFilter();
>         filter.addTerm(term);
>         FilterClause filterClause = new FilterClause(filter,
> BooleanClause.Occur.SHOULD);
>         boolFilter.add(filterClause);
>
>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);



*ErrorTrace:*

java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
> thread "main" java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281)


Kumaran R

Re: problem in using distanceFilter in booleanFilter (using FilterClause)

Posted by "david.w.smiley@gmail.com" <da...@gmail.com>.
I suggest either finding example code out there (try googling) or
https://code.ohloh.net   and/or looking at any tests which can often serve
as illustrative examples.  Failing those approaches; grab a coffee and
break out the debugger.  This is fairly generic advise, I admit, but it's
all I have to offer on the old spatial module.
~ David


On Fri, Apr 11, 2014 at 5:26 AM, kumaran <ku...@gmail.com> wrote:

> Hi David
>
>    Thanks for your response. Actually i dont know where to post. Thats why.
> i will make sure sending to one list in future. could you please direct me
> on my question?
>
> - Kumaran
>
>
> > You'll be lucky to get help with the spatial module from Lucene 3.x,
> which
> > is what you are using.  It was outright replaced in 4.0 because it was
> > buggy.
> > p.s. please don't blast emails to multiple lists
> > Good luck,
> > ~ David
>
>
>
> On Thu, Apr 10, 2014 at 1:58 AM, kumaran <ku...@gmail.com> wrote:
>
> >
> > Hi All,
> >
> > i am trying to add Termfilter and DistanceFilter in BooleanFilter using
> > FilterClause. But i am getting the below mentioned error. Please check my
> > code and guide me.
> >
> >
> >
> >
> > *Code:*
> >
> >> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
> >> latLong[1], radius, "lat", "lon",
> CartesianTierPlotter.DEFALT_FIELD_PREFIX,
> >> true);
> >>         DistanceFieldComparatorSource distComp = new
> >> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
> >>         Sort distSort = new Sort(new SortField("", distComp,true));
> >>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
> >> new StandardAnalyzer(Version.LUCENE_30));
> >>         Query query = parser.parse(strQuery);
> >>         System.out.println(" distance sort details ::: "+ distSort);
> >>         BooleanFilter boolFilter = new BooleanFilter();
> >>         FilterClause filterClause2 = new
> >> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
> >>         boolFilter.add(filterClause2);
> >>
> >>         Term term = new Term("city", "chengalpat");
> >>         TermsFilter filter = new TermsFilter();
> >>         filter.addTerm(term);
> >>         FilterClause filterClause = new FilterClause(filter,
> >> BooleanClause.Occur.SHOULD);
> >>         boolFilter.add(filterClause);
> >>
> >>         TopDocs topDocs = searcher.search(query,boolFilter,
> 20,distSort);
> >
> >
> >
> > *ErrorTrace:*
> >
> >  java.lang.NullPointerException at
> >>
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> >> at
> >>
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> >> at
> >>
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> >> at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> >> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> >> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> >> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
> >> thread "main" java.lang.NullPointerException at
> >>
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> >> at
> >>
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> >> at
> >>
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> >> at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> >> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> >> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> >> com.zoho.training.RadialSearch.main(RadialSearch.java:281)
> >
> >
> >
> >
> >
> > Kumaran R
> >
> >
> >
> >
>
>
>
> Kumaran R
> Inspire...Love...Achieve...
>
>
>
>
> On Thu, Apr 10, 2014 at 11:28 AM, kumaran <ku...@gmail.com> wrote:
>
> >
> > Hi All,
> >
> > i am trying to add Termfilter and DistanceFilter in BooleanFilter using
> > FilterClause. But i am getting the below mentioned error. Please check my
> > code and guide me.
> >
> >
> >
> >
> > *Code:*
> >
> >> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
> >> latLong[1], radius, "lat", "lon",
> CartesianTierPlotter.DEFALT_FIELD_PREFIX,
> >> true);
> >>         DistanceFieldComparatorSource distComp = new
> >> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
> >>         Sort distSort = new Sort(new SortField("", distComp,true));
> >>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
> >> new StandardAnalyzer(Version.LUCENE_30));
> >>         Query query = parser.parse(strQuery);
> >>         System.out.println(" distance sort details ::: "+ distSort);
> >>         BooleanFilter boolFilter = new BooleanFilter();
> >>         FilterClause filterClause2 = new
> >> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
> >>         boolFilter.add(filterClause2);
> >>
> >>         Term term = new Term("city", "chengalpat");
> >>         TermsFilter filter = new TermsFilter();
> >>         filter.addTerm(term);
> >>         FilterClause filterClause = new FilterClause(filter,
> >> BooleanClause.Occur.SHOULD);
> >>         boolFilter.add(filterClause);
> >>
> >>         TopDocs topDocs = searcher.search(query,boolFilter,
> 20,distSort);
> >
> >
> >
> > *ErrorTrace:*
> >
> >  java.lang.NullPointerException at
> >>
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> >> at
> >>
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> >> at
> >>
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> >> at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> >> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> >> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> >> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
> >> thread "main" java.lang.NullPointerException at
> >>
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> >> at
> >>
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> >> at
> >>
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> >> at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> >> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> >> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> >> com.zoho.training.RadialSearch.main(RadialSearch.java:281)
> >
> >
> >
> >
> >
> > Kumaran R
> >
> >
> >
> >
>

Re: problem in using distanceFilter in booleanFilter (using FilterClause)

Posted by kumaran <ku...@gmail.com>.
Hi David

   Thanks for your response. Actually i dont know where to post. Thats why.
i will make sure sending to one list in future. could you please direct me
on my question?

- Kumaran


> You'll be lucky to get help with the spatial module from Lucene 3.x, which
> is what you are using.  It was outright replaced in 4.0 because it was
> buggy.
> p.s. please don't blast emails to multiple lists
> Good luck,
> ~ David



On Thu, Apr 10, 2014 at 1:58 AM, kumaran <ku...@gmail.com> wrote:

>
> Hi All,
>
> i am trying to add Termfilter and DistanceFilter in BooleanFilter using
> FilterClause. But i am getting the below mentioned error. Please check my
> code and guide me.
>
>
>
>
> *Code:*
>
>> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
>> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
>> true);
>>         DistanceFieldComparatorSource distComp = new
>> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>>         Sort distSort = new Sort(new SortField("", distComp,true));
>>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
>> new StandardAnalyzer(Version.LUCENE_30));
>>         Query query = parser.parse(strQuery);
>>         System.out.println(" distance sort details ::: "+ distSort);
>>         BooleanFilter boolFilter = new BooleanFilter();
>>         FilterClause filterClause2 = new
>> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>>         boolFilter.add(filterClause2);
>>
>>         Term term = new Term("city", "chengalpat");
>>         TermsFilter filter = new TermsFilter();
>>         filter.addTerm(term);
>>         FilterClause filterClause = new FilterClause(filter,
>> BooleanClause.Occur.SHOULD);
>>         boolFilter.add(filterClause);
>>
>>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);
>
>
>
> *ErrorTrace:*
>
>  java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
>> thread "main" java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281)
>
>
>
>
>
> Kumaran R
>
>
>
>



Kumaran R
Inspire...Love...Achieve...




On Thu, Apr 10, 2014 at 11:28 AM, kumaran <ku...@gmail.com> wrote:

>
> Hi All,
>
> i am trying to add Termfilter and DistanceFilter in BooleanFilter using
> FilterClause. But i am getting the below mentioned error. Please check my
> code and guide me.
>
>
>
>
> *Code:*
>
>> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
>> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
>> true);
>>         DistanceFieldComparatorSource distComp = new
>> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>>         Sort distSort = new Sort(new SortField("", distComp,true));
>>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
>> new StandardAnalyzer(Version.LUCENE_30));
>>         Query query = parser.parse(strQuery);
>>         System.out.println(" distance sort details ::: "+ distSort);
>>         BooleanFilter boolFilter = new BooleanFilter();
>>         FilterClause filterClause2 = new
>> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>>         boolFilter.add(filterClause2);
>>
>>         Term term = new Term("city", "chengalpat");
>>         TermsFilter filter = new TermsFilter();
>>         filter.addTerm(term);
>>         FilterClause filterClause = new FilterClause(filter,
>> BooleanClause.Occur.SHOULD);
>>         boolFilter.add(filterClause);
>>
>>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);
>
>
>
> *ErrorTrace:*
>
>  java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
>> thread "main" java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281)
>
>
>
>
>
> Kumaran R
>
>
>
>

Re: problem in using distanceFilter in booleanFilter (using FilterClause)

Posted by "david.w.smiley@gmail.com" <da...@gmail.com>.
You'll be lucky to get help with the spatial module from Lucene 3.x, which
is what you are using.  It was outright replaced in 4.0 because it was
buggy.

p.s. please don't blast emails to multiple lists

Good luck,
~ David


On Thu, Apr 10, 2014 at 1:58 AM, kumaran <ku...@gmail.com> wrote:

>
> Hi All,
>
> i am trying to add Termfilter and DistanceFilter in BooleanFilter using
> FilterClause. But i am getting the below mentioned error. Please check my
> code and guide me.
>
>
>
>
> *Code:*
>
>> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
>> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
>> true);
>>         DistanceFieldComparatorSource distComp = new
>> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>>         Sort distSort = new Sort(new SortField("", distComp,true));
>>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
>> new StandardAnalyzer(Version.LUCENE_30));
>>         Query query = parser.parse(strQuery);
>>         System.out.println(" distance sort details ::: "+ distSort);
>>         BooleanFilter boolFilter = new BooleanFilter();
>>         FilterClause filterClause2 = new
>> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>>         boolFilter.add(filterClause2);
>>
>>         Term term = new Term("city", "chengalpat");
>>         TermsFilter filter = new TermsFilter();
>>         filter.addTerm(term);
>>         FilterClause filterClause = new FilterClause(filter,
>> BooleanClause.Occur.SHOULD);
>>         boolFilter.add(filterClause);
>>
>>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);
>
>
>
> *ErrorTrace:*
>
>  java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
>> thread "main" java.lang.NullPointerException at
>> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
>> at
>> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
>> at
>> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
>> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
>> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
>> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
>> com.zoho.training.RadialSearch.main(RadialSearch.java:281)
>
>
>
>
>
> Kumaran R
>
>
>
>

Re: problem in using distanceFilter in booleanFilter (using FilterClause)

Posted by kumaran <ku...@gmail.com>.
Hi All,

i am trying to add Termfilter and DistanceFilter in BooleanFilter using
FilterClause. But i am getting the below mentioned error. Please check my
code and guide me.




*Code:*

> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
> true);
>         DistanceFieldComparatorSource distComp = new
> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>         Sort distSort = new Sort(new SortField("", distComp,true));
>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
> new StandardAnalyzer(Version.LUCENE_30));
>         Query query = parser.parse(strQuery);
>         System.out.println(" distance sort details ::: "+ distSort);
>         BooleanFilter boolFilter = new BooleanFilter();
>         FilterClause filterClause2 = new
> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>         boolFilter.add(filterClause2);
>
>         Term term = new Term("city", "chengalpat");
>         TermsFilter filter = new TermsFilter();
>         filter.addTerm(term);
>         FilterClause filterClause = new FilterClause(filter,
> BooleanClause.Occur.SHOULD);
>         boolFilter.add(filterClause);
>
>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);



*ErrorTrace:*

 java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
> thread "main" java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281)





Kumaran R

Re: problem in using distanceFilter in booleanFilter (using FilterClause)

Posted by kumaran <ku...@gmail.com>.
Hi All,

i am trying to add Termfilter and DistanceFilter in BooleanFilter using
FilterClause. But i am getting the below mentioned error. Please check my
code and guide me.




*Code:*

> DistanceQueryBuilder queryBuilder = new DistanceQueryBuilder(latLong[0],
> latLong[1], radius, "lat", "lon", CartesianTierPlotter.DEFALT_FIELD_PREFIX,
> true);
>         DistanceFieldComparatorSource distComp = new
> DistanceFieldComparatorSource(queryBuilder.getDistanceFilter());
>         Sort distSort = new Sort(new SortField("", distComp,true));
>         QueryParser parser = new QueryParser(Version.LUCENE_30, "city",
> new StandardAnalyzer(Version.LUCENE_30));
>         Query query = parser.parse(strQuery);
>         System.out.println(" distance sort details ::: "+ distSort);
>         BooleanFilter boolFilter = new BooleanFilter();
>         FilterClause filterClause2 = new
> FilterClause(queryBuilder.getFilter(), BooleanClause.Occur.MUST);
>         boolFilter.add(filterClause2);
>
>         Term term = new Term("city", "chengalpat");
>         TermsFilter filter = new TermsFilter();
>         filter.addTerm(term);
>         FilterClause filterClause = new FilterClause(filter,
> BooleanClause.Occur.SHOULD);
>         boolFilter.add(filterClause);
>
>         TopDocs topDocs = searcher.search(query,boolFilter, 20,distSort);



*ErrorTrace:*

 java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281) Exception in
> thread "main" java.lang.NullPointerException at
> org.apache.lucene.spatial.tier.DistanceFieldComparatorSource$DistanceScoreDocLookupComparator.copy(DistanceFieldComparatorSource.java:105)
> at
> org.apache.lucene.search.TopFieldCollector$OneComparatorNonScoringCollector.collect(TopFieldCollector.java:89)
> at
> org.apache.lucene.search.IndexSearcher.searchWithFilter(IndexSearcher.java:258)
> at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:218) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:199) at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177) at
> org.apache.lucene.search.Searcher.search(Searcher.java:49) at
> com.zoho.training.RadialSearch.search(RadialSearch.java:246) at
> com.zoho.training.RadialSearch.main(RadialSearch.java:281)





Kumaran R