Hi Peter: Do you have any additional details to add for me to try out?
Is my previous email with the code snippet makes sense to you? Thanks -Kasi On Wed, Feb 15, 2017 at 7:13 PM, Kasi Lakshman Karthi Anbumony < [email protected]> wrote: > 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-retri >>> eve-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 >> > >
