Hi Peter:
Thanks for your quick response. I am a beginner with Lucy framework and
getting to know the different classes and objects.
I have copy-pasted my source code, with the code marked in red is the block
I am working.
(1) Is this what you meant by analyze "terms"?
(2) Can I do something similar to what has been done for TermQuery in the
code block marked in blue below?
String *folder = Str_newf("%s", path_to_index);
printf("Index file used: %s\n", path_to_index);
IndexSearcher *searcher = IxSearcher_new((Obj*)folder);
Schema *schema = IxSearcher_Get_Schema(searcher);
QueryParser *qparser = QParser_new(schema, NULL, NULL, NULL);
//ProximityQuery *pquery = ProximityQuery_new(NULL, "animal quarter",
20);
String *query_str = Str_newf("%s", query_c);
Query *query = QParser_Parse(qparser, query_str);
//Query *query = QParser_Parse(pquery, query_str);
String *content_str = Str_newf("content");
#ifdef ENABLE_HIGHLIGHTER
Highlighter *highlighter
= Highlighter_new((Searcher*)searcher, (Obj*)query, content_str,
200);
#endif
if (category) {
String *category_name = Str_newf("category");
String *category_str = Str_newf("%s", category);
TermQuery *category_query
= TermQuery_new(category_name, (Obj*)category_str);
Vector *children = Vec_new(2);
Vec_Push(children, (Obj*)query);
Vec_Push(children, (Obj*)category_query);
query = (Query*)ANDQuery_new(children);
DECREF(children);
DECREF(category_str);
DECREF(category_name);
}
if( queryType[g_testProximity] )
{
Vector *terms = Vec_new(0);
Vec_Push(terms, (Obj*)query_str);
String *field_name = Str_newf("content");
ProximityQuery *pquery = ProximityQuery_new(field_name, terms, 100);
Analyzer *analyzer = Schema_Fetch_Analyzer(schema, field_name);
if (!analyzer)
{
Vec_Push(query, pquery);
}
DECREF(terms);
DECREF(field_name);
}
Hits *hits = IxSearcher_Hits(searcher, (Obj*)query, 0, 10, NULL);
Thanks
-Kasi
On Wed, Feb 15, 2017 at 5:55 PM, Peter Karman <[email protected]> wrote:
> Kasi Lakshman Karthi Anbumony wrote on 2/15/17 4:22 PM:
>
>
>> I stumbled upon this perl thread:
>> http://lucene.472066.n3.nabble.com/lucy-user-Unable-to-
>> retrieve-records-using-Proximity-query-td3990375.html
>>
>> The above perl thread says that there is no analyzer for ProximityQuery.
>> Can I know what is the equivalent translation I need to apply for my C
>> code
>> so as to enable ProximtyQuery and get it working?
>>
>>
>
> You need to analyze "terms" before you pass it to ProximityQuery_new
>
> The relevant section of the QueryParser code is here and might point you
> in the right direction:
>
> https://github.com/apache/lucy/blob/master/core/Lucy/Search/
> QueryParser.c#L862
>
>
>
>
> --
> Peter Karman . https://peknet.com/ . https://keybase.io/peterkarman
>