Maybe you should change one or both of the "MUST" to "SHOULD". And it's
better to switch the order of the 2 subqueries.


On Tue, Jan 28, 2020 at 2:23 PM vas aj <vasudevan.a...@gmail.com> wrote:

> Thanks Dan for the quick help.
> However the query failed.
>
> Working on the same.
>
> On Tue, 28 Jan 2020, 19:55 Dan Smith, <dsm...@pivotal.io> wrote:
>
>> I think you could probably use a BooleanQuery to do this. Something like
>> this, although I haven't tested it. Your LuceneQuery1 just results in a
>> call to StandardQueryParser.parse, so you can combine that with your
>> spatial query:
>>
>> LuceneQuery<Long, Station> luceneQuery2 =
>>     luceneService
>>          .createLuceneQueryFactory()
>>          .create("stationNameIndex", "stations-region", index -> {
>>             BooleanQuery query = new BooleanQuery();
>>             query.add(new StandardQueryParser().parse(queryString, name),
>> BooleanQuery.Occur.MUST);
>>             query.add(SpatialHelper.findWithin(-122.8515139, 45.5099231,
>> 0.5), , BooleanQuery.Occur.MUST);
>>             return query;
>>     }
>>
>> On Tue, Jan 28, 2020 at 11:36 AM vas aj <vasudevan.a...@gmail.com> wrote:
>>
>>> Hi team,
>>>
>>> I want to execute a *LuceneQuery* that searches both a queryString(E.g.
>>> "station:Piccadilly*") as well as nearest station within .5 miles.(E.g.
>>> SpatialHelper.findWithin(lat, long, 0.5))
>>>
>>> In other words, is there any means of combining *luceneQuery1* &
>>> *luceneQuery2* and executing them as
>>> Collection<Station> nearestStations = *luceneQuery*.findValues();
>>>
>>> where luceneQuery = luceneQuery1 + luceneQuery2
>>>
>>> *LuceneQuery1*
>>> LuceneQuery<Long, Station> luceneQuery1 =
>>>         luceneService
>>>             .createLuceneQueryFactory()
>>>             .setLimit(100)
>>>             .create("stationNameIndex", "stations-region", queryString,
>>> "name");
>>>
>>> *LuceneQuery2*
>>> LuceneQuery<Long, Station> luceneQuery2 =
>>>     luceneService
>>>          .createLuceneQueryFactory()
>>>          .create("stationNameIndex", "stations-region", index ->
>>> SpatialHelper.findWithin(-122.8515139, 45.5099231, 0.5);
>>>
>>> Regards
>>> Aj
>>>
>>

Reply via email to