You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Priyanka Tufchi <pr...@launchship.com> on 2014/01/30 08:20:16 UTC
Need Help In code
Hello
This is the Sample Code Of BlockJoinQuery( we tried .
Issues:
1)Dont know how to get hits and score from it
2) This code is not giving output.
I have attached the code for easy view
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_41);
// 1. create the index
Directory index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_41,
analyzer);
IndexWriter w = new IndexWriter(index, config);
List<Document> documents=new ArrayList<Document>();
documents.add(createProductItem("red", "s", "999"));
documents.add(createProductItem("red", "m", "1000"));
documents.add(createProductItem("red", "l", "2000"));
documents.add(createProduct("...Polo Shirt", ".....Made Of 100% cotton"));
w.addDocuments(documents);
documents.clear();
documents.add(createProductItem("light blue", "s", "1000"));
documents.add(createProductItem("blue", "s", "1900"));
documents.add(createProductItem("dark blue", "s", "1999"));
documents.add(createProductItem("light blue", "m", "2000"));
documents.add(createProductItem("blue", "m", "2090"));
documents.add(createProductItem("dark blue", "m", "2099"));
documents.add(createProduct(".....white color", "...stripe pattern"));
w.addDocuments(documents);
IndexReader indexreader=DirectoryReader.open(w, false);
IndexSearcher indexsearcher=new IndexSearcher(indexreader);
Query parentQuery= new TermQuery(new Term("doctype", "product"));
Filter parentfilter=new CachingWrapperFilter(new
QueryWrapperFilter(parentQuery));
Query childQuery=new TermQuery(new Term("size","m"));
ScoreMode scoremode=ScoreMode.Max;
//String Query="blue AND l";
BooleanQuery mainQuery=new BooleanQuery();
//need to check this parameters
mainQuery.add(childQuery,Occur.MUST);
//mainQuery.add(query, occur);
ToParentBlockJoinQuery productitemQuery=new
ToParentBlockJoinQuery(mainQuery, parentfilter,
scoremode);
ToParentBlockJoinCollector c = new ToParentBlockJoinCollector(
Sort.RELEVANCE, // sort
10, // numHits
true, // trackScores
false // trackMaxScore
);
indexsearcher.search(productitemQuery,c);
Re: Need Help In code
Posted by Priyanka Tufchi <pr...@launchship.com>.
Hello Mike
We tried the following code, but it is giving null :
TopGroups<Integer> hits =
c.getTopGroups(
productitemQuery,
Sort.RELEVANCE,
0, // offset
10, // maxDocsPerGroup
0, // withinGroupOffset
true // fillSortFields
);
On Thu, Jan 30, 2014 at 2:35 AM, Michael McCandless
<lu...@mikemccandless.com> wrote:
> After indexsearcher.search you should call c.getTopGroups? See the
> TestBlockJoin.java example...
>
> Can you boil this down to a runnable test case, i.e. include
> createProductItem/createProduct sources, etc.
>
> Mike McCandless
>
> http://blog.mikemccandless.com
>
>
> On Thu, Jan 30, 2014 at 2:20 AM, Priyanka Tufchi
> <pr...@launchship.com> wrote:
>> Hello
>>
>> This is the Sample Code Of BlockJoinQuery( we tried .
>> Issues:
>> 1)Dont know how to get hits and score from it
>> 2) This code is not giving output.
>>
>> I have attached the code for easy view
>>
>>
>> StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_41);
>> // 1. create the index
>> Directory index = new RAMDirectory();
>> IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_41,
>> analyzer);
>>
>> IndexWriter w = new IndexWriter(index, config);
>> List<Document> documents=new ArrayList<Document>();
>> documents.add(createProductItem("red", "s", "999"));
>> documents.add(createProductItem("red", "m", "1000"));
>> documents.add(createProductItem("red", "l", "2000"));
>> documents.add(createProduct("...Polo Shirt", ".....Made Of 100% cotton"));
>> w.addDocuments(documents);
>> documents.clear();
>> documents.add(createProductItem("light blue", "s", "1000"));
>> documents.add(createProductItem("blue", "s", "1900"));
>> documents.add(createProductItem("dark blue", "s", "1999"));
>> documents.add(createProductItem("light blue", "m", "2000"));
>> documents.add(createProductItem("blue", "m", "2090"));
>> documents.add(createProductItem("dark blue", "m", "2099"));
>> documents.add(createProduct(".....white color", "...stripe pattern"));
>> w.addDocuments(documents);
>> IndexReader indexreader=DirectoryReader.open(w, false);
>> IndexSearcher indexsearcher=new IndexSearcher(indexreader);
>> Query parentQuery= new TermQuery(new Term("doctype", "product"));
>> Filter parentfilter=new CachingWrapperFilter(new
>> QueryWrapperFilter(parentQuery));
>> Query childQuery=new TermQuery(new Term("size","m"));
>> ScoreMode scoremode=ScoreMode.Max;
>> //String Query="blue AND l";
>> BooleanQuery mainQuery=new BooleanQuery();
>> //need to check this parameters
>> mainQuery.add(childQuery,Occur.MUST);
>> //mainQuery.add(query, occur);
>> ToParentBlockJoinQuery productitemQuery=new
>> ToParentBlockJoinQuery(mainQuery, parentfilter,
>> scoremode);
>> ToParentBlockJoinCollector c = new ToParentBlockJoinCollector(
>> Sort.RELEVANCE, // sort
>> 10, // numHits
>> true, // trackScores
>> false // trackMaxScore
>> );
>>
>> indexsearcher.search(productitemQuery,c);
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Need Help In code
Posted by Michael McCandless <lu...@mikemccandless.com>.
After indexsearcher.search you should call c.getTopGroups? See the
TestBlockJoin.java example...
Can you boil this down to a runnable test case, i.e. include
createProductItem/createProduct sources, etc.
Mike McCandless
http://blog.mikemccandless.com
On Thu, Jan 30, 2014 at 2:20 AM, Priyanka Tufchi
<pr...@launchship.com> wrote:
> Hello
>
> This is the Sample Code Of BlockJoinQuery( we tried .
> Issues:
> 1)Dont know how to get hits and score from it
> 2) This code is not giving output.
>
> I have attached the code for easy view
>
>
> StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_41);
> // 1. create the index
> Directory index = new RAMDirectory();
> IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_41,
> analyzer);
>
> IndexWriter w = new IndexWriter(index, config);
> List<Document> documents=new ArrayList<Document>();
> documents.add(createProductItem("red", "s", "999"));
> documents.add(createProductItem("red", "m", "1000"));
> documents.add(createProductItem("red", "l", "2000"));
> documents.add(createProduct("...Polo Shirt", ".....Made Of 100% cotton"));
> w.addDocuments(documents);
> documents.clear();
> documents.add(createProductItem("light blue", "s", "1000"));
> documents.add(createProductItem("blue", "s", "1900"));
> documents.add(createProductItem("dark blue", "s", "1999"));
> documents.add(createProductItem("light blue", "m", "2000"));
> documents.add(createProductItem("blue", "m", "2090"));
> documents.add(createProductItem("dark blue", "m", "2099"));
> documents.add(createProduct(".....white color", "...stripe pattern"));
> w.addDocuments(documents);
> IndexReader indexreader=DirectoryReader.open(w, false);
> IndexSearcher indexsearcher=new IndexSearcher(indexreader);
> Query parentQuery= new TermQuery(new Term("doctype", "product"));
> Filter parentfilter=new CachingWrapperFilter(new
> QueryWrapperFilter(parentQuery));
> Query childQuery=new TermQuery(new Term("size","m"));
> ScoreMode scoremode=ScoreMode.Max;
> //String Query="blue AND l";
> BooleanQuery mainQuery=new BooleanQuery();
> //need to check this parameters
> mainQuery.add(childQuery,Occur.MUST);
> //mainQuery.add(query, occur);
> ToParentBlockJoinQuery productitemQuery=new
> ToParentBlockJoinQuery(mainQuery, parentfilter,
> scoremode);
> ToParentBlockJoinCollector c = new ToParentBlockJoinCollector(
> Sort.RELEVANCE, // sort
> 10, // numHits
> true, // trackScores
> false // trackMaxScore
> );
>
> indexsearcher.search(productitemQuery,c);
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org