<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.jakarta.lucene.clucene.devel">
    <title>gmane.comp.jakarta.lucene.clucene.devel</title>
    <link>http://blog.gmane.org/gmane.comp.jakarta.lucene.clucene.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4104"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4103"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4102"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4101"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4100"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4099"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4098"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4097"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4096"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4095"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4094"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4093"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4092"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4091"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4090"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4089"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4088"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4087"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4086"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4085"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4104">
    <title>Re: Finding all the fields used in a query..</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4104</link>
    <description>&lt;pre&gt;It looks like you are trying to use Lucene as a database, a document
database to be specific, and it actually isn't really supported out of the
box

Take a look at MongoDB, CouchDB or RavenDB.

On Thu, May 3, 2012 at 10:56 AM, Mike Aubury &amp;lt;mike-236R7u3V+AEAvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Itamar Syn-Hershko</dc:creator>
    <dc:date>2012-05-03T08:49:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4103">
    <title>Finding all the fields used in a query..</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4103</link>
    <description>&lt;pre&gt;I'm writing some code at the minute and I have two main issues outstanding..

1) I want to aggregate data based on a user defined query - this means
searching through an index when I have a new record to see if a record
already exists
    If it does - I want to update the totals in there with some new value.
    If it does not exist - I want to create a new document containing my
totals to store in a secondary index - but only have the fields that are
used in the query..
    So - is there any way to traverse the Query to find out what fields are
used - so I can create a new document which only contains
    those fields ?

2) When I pull the data back at the end - I want to be able to order the
data by these totals - based on some query.
    So - for example - I might aggregate all the sales by salesman and
area, then select from that index for a particular area and have it ordered
by the total sales.
    If it makes it any clearer - in SQL it would be something like - select
salesman, area, sum(sales)  GROUP BY 1,2 ORDER BY 3 desc
    (obviously - I'm not doing salesmen and sales - if I was I'd probably
use a relational database - but you get the idea)

Any ideas on how to solve these two issues?


Many thanks in advance
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Mike Aubury</dc:creator>
    <dc:date>2012-05-03T07:56:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4102">
    <title>[PATCH] Fix for CLMultimap::put and a trivial cleanup</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4102</link>
    <description>&lt;pre&gt;Hello,

Please find attached 2 patches. One is a trivial cleanup so that the
2nd patch can follow the same pattern as the other put functions in
that file without introducing a silly ;;

The second one probably solves a real bug. I discovered this while
compiling Libreoffice with Clang which warns that the v value is
unused in put. So I'm interested in committing this patch since
without it clients like Libreoffice can't compile with -Werror. I'm
not familiar with the code and I've never used CLucene before but I
suppose both patches are correct since they're quite trivial.

In case this is needed for accepting the contribution: patches are
under LGPL or Apache Version 2.0.

Catalin Iacob
------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Catalin Iacob</dc:creator>
    <dc:date>2012-04-17T20:35:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4101">
    <title>Re: Bug in SegmentMerger and IndexWriter</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4101</link>
    <description>&lt;pre&gt;Hi Ben,

We are using slightly different version but I tested the issue with
sources from origin/master and also from origin/vc6-fixes-working
and the test crashes as described in all the cases - at least in debug version.
But we found the issue when using release version.
I am using VS2005 on Windows 7.

Jiri


From: Ben van Klinken [mailto:bvanklinken&amp;lt; at &amp;gt;gmail.com]
Sent: Friday, April 13, 2012 12:50 AM
To: clucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net
Subject: Re: [CLucene-dev] Bug in SegmentMerger and IndexWriter

Hi Jiri,

What branch are you using? I just tried compiling and running that test and it ran without any issues

ben
2012/4/12 Šplíchal Jiří &amp;lt;splichal&amp;lt; at &amp;gt;tovek.cz&amp;lt;mailto:splichal&amp;lt; at &amp;gt;tovek.cz&amp;gt;&amp;gt;
Hello,

please find attached TestIndexWriter.cpp extended with one more test that
shows two different bugs:
1) If you leave the test as it is, than it crashes on line 680 when optimizing an index that
was previously empty (all documents were deleted) and then some documents has been added.
We were able to fix this bug, the problem is in SegmentMerger.cpp 769 where
         reader-&amp;gt;norms(fi-&amp;gt;name, normBuffer.values);
is called with normBuffer.values == NULL.
To prevent this it is sufficient to initialize the normBuffer at the beginning of the method
with length 1.

2) If you uncomment writer-&amp;gt;optimize(); on line 660 in the test, than the following call to
writer-&amp;gt;close(); crashes. We have not found any solution for this issue where we could be
sure about all consequences. But the problematic method in this case is
bool IndexWriter::flushDocStores()
which intializes a local variable files by calling:
       const std::vector&amp;lt;std::string&amp;gt;&amp;amp; files = docWriter-&amp;gt;files();
but the following calls have as side effect modification of this vector in such way
that the application crashes.

Best Regards,
Jiri


------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
CLucene-developers mailing list
CLucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net&amp;lt;mailto:CLucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net&amp;gt;
https://lists.sourceforge.net/lists/listinfo/clucene-developers

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Šplíchal Jiří</dc:creator>
    <dc:date>2012-04-13T07:24:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4100">
    <title>Re: Bug in SegmentMerger and IndexWriter</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4100</link>
    <description>&lt;pre&gt;Hi Jiri,

What branch are you using? I just tried compiling and running that test and
it ran without any issues

ben

2012/4/12 Šplíchal Jiří &amp;lt;splichal-jjj3dKdegmI&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Ben van Klinken</dc:creator>
    <dc:date>2012-04-12T22:50:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4099">
    <title>Bug in SegmentMerger and IndexWriter</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4099</link>
    <description>&lt;pre&gt;Hello, 

please find attached TestIndexWriter.cpp extended with one more test that
shows two different bugs:
1) If you leave the test as it is, than it crashes on line 680 when optimizing an index that 
was previously empty (all documents were deleted) and then some documents has been added.
We were able to fix this bug, the problem is in SegmentMerger.cpp 769 where 
          reader-&amp;gt;norms(fi-&amp;gt;name, normBuffer.values);
is called with normBuffer.values == NULL.
To prevent this it is sufficient to initialize the normBuffer at the beginning of the method
with length 1.

2) If you uncomment writer-&amp;gt;optimize(); on line 660 in the test, than the following call to 
writer-&amp;gt;close(); crashes. We have not found any solution for this issue where we could be 
sure about all consequences. But the problematic method in this case is
bool IndexWriter::flushDocStores()
which intializes a local variable files by calling:
const std::vector&amp;lt;std::string&amp;gt;&amp;amp; files = docWriter-&amp;gt;files();
but the following calls have as side effect modification of this vector in such way
that the application crashes.

Best Regards, 
Jiri 

/*------------------------------------------------------------------------------
* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
*
* Distributable under the terms of either the Apache License (Version 2.0) or
* the GNU Lesser General Public License, as specified in the COPYING file.
------------------------------------------------------------------------------*/
#include "test.h"
#include &amp;lt;CLucene/search/MatchAllDocsQuery.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

//checks if a merged index finds phrases correctly
void testIWmergePhraseSegments(CuTest *tc){
char fsdir[CL_MAX_PATH];
_snprintf(fsdir, CL_MAX_PATH, "%s/%s",cl_tempDir, "test.indexwriter");
SimpleAnalyzer a;
  Directory* dir = FSDirectory::getDirectory(fsdir);

IndexWriter ndx2(dir,&amp;amp;a,true);
ndx2.setUseCompoundFile(false);
Document doc0;
doc0.add(
*_CLNEW Field(
_T("field0"),
_T("value0 value1"),
Field::STORE_YES | Field::INDEX_TOKENIZED
)
);
ndx2.addDocument(&amp;amp;doc0);
ndx2.optimize();
ndx2.close();

IndexWriter ndx(fsdir,&amp;amp;a,false);
ndx.setUseCompoundFile(false);
Document doc1;
doc1.add(
*_CLNEW Field(
_T("field0"),
_T("value1 value0"),
Field::STORE_YES | Field::INDEX_TOKENIZED
)
);
ndx.addDocument(&amp;amp;doc1);
ndx.optimize();
ndx.close();

//test the index querying
IndexSearcher searcher(fsdir);
Query* query0 = QueryParser::parse(
_T("\"value0 value1\""),
_T("field0"),
&amp;amp;a
);
Hits* hits0 = searcher.search(query0);
CLUCENE_ASSERT(hits0-&amp;gt;length() &amp;gt; 0);
Query* query1 = QueryParser::parse(
_T("\"value1 value0\""),
_T("field0"),
&amp;amp;a
);
Hits* hits1 = searcher.search(query1);
CLUCENE_ASSERT(hits1-&amp;gt;length() &amp;gt; 0);
_CLDELETE(query0);
_CLDELETE(query1);
_CLDELETE(hits0);
_CLDELETE(hits1);
    dir-&amp;gt;close();
_CLDECDELETE(dir);
}

//checks that adding more than the min_merge value goes ok...
//checks for a mem leak that used to occur
void testIWmergeSegments1(CuTest *tc){
RAMDirectory ram;
SimpleAnalyzer a;

    IndexWriter ndx2(&amp;amp;ram,&amp;amp;a,true);
ndx2.close();                   //test immediate closing bug reported

IndexWriter ndx(&amp;amp;ram,&amp;amp;a,true);  //set create to false

ndx.setUseCompoundFile(false);
ndx.setMergeFactor(2);
TCHAR fld[1000];
for ( int i=0;i&amp;lt;1000;i++ ){
    English::IntToEnglish(i,fld,1000);

Document doc;

doc.add ( *_CLNEW Field(_T("field0"),fld,Field::STORE_YES | Field::INDEX_TOKENIZED) );
doc.add ( *_CLNEW Field(_T("field1"),fld,Field::STORE_YES | Field::INDEX_TOKENIZED) );
doc.add ( *_CLNEW Field(_T("field2"),fld,Field::STORE_YES | Field::INDEX_TOKENIZED) );
doc.add ( *_CLNEW Field(_T("field3"),fld,Field::STORE_YES | Field::INDEX_TOKENIZED) );
ndx.addDocument(&amp;amp;doc);
}
//ndx.optimize(); //optimize so we can read terminfosreader with segmentreader
ndx.close();

//test the ram loading
RAMDirectory ram2(&amp;amp;ram);
IndexReader* reader2 = IndexReader::open(&amp;amp;ram2);
Term* term = _CLNEW Term(_T("field0"),fld);
TermEnum* en = reader2-&amp;gt;terms(term);
CLUCENE_ASSERT(en-&amp;gt;next());
_CLDELETE(en);
_CLDECDELETE(term);
_CLDELETE(reader2);
}

//checks if appending to an index works correctly
void testIWmergeSegments2(CuTest *tc){
char fsdir[CL_MAX_PATH];
_snprintf(fsdir, CL_MAX_PATH, "%s/%s",cl_tempDir, "test.indexwriter");
SimpleAnalyzer a;
  Directory* dir = FSDirectory::getDirectory(fsdir);

IndexWriter ndx2(dir,&amp;amp;a,true);
ndx2.setUseCompoundFile(false);
Document doc0;
doc0.add(
*_CLNEW Field(
_T("field0"),
_T("value0"),
Field::STORE_YES | Field::INDEX_TOKENIZED
)
);
ndx2.addDocument(&amp;amp;doc0);
ndx2.optimize();
ndx2.close();

IndexWriter ndx(fsdir,&amp;amp;a,false);
ndx.setUseCompoundFile(false);
Document doc1;
doc1.add(
*_CLNEW Field(
_T("field0"),
_T("value1"),
Field::STORE_YES | Field::INDEX_TOKENIZED
)
);
ndx.addDocument(&amp;amp;doc1);
ndx.optimize();
ndx.close();

//test the ram querying
IndexSearcher searcher(fsdir);
Term* term0 = _CLNEW Term(_T("field0"),_T("value1"));
Query* query0 = QueryParser::parse(_T("value0"),_T("field0"),&amp;amp;a);
Hits* hits0 = searcher.search(query0);
CLUCENE_ASSERT(hits0-&amp;gt;length() &amp;gt; 0);
Term* term1 = _CLNEW Term(_T("field0"),_T("value0"));
Query* query1 = QueryParser::parse(_T("value1"),_T("field0"),&amp;amp;a);
Hits* hits1 = searcher.search(query1);
CLUCENE_ASSERT(hits1-&amp;gt;length() &amp;gt; 0);
_CLDELETE(query0);
_CLDELETE(query1);
_CLDELETE(hits0);
  _CLDELETE(hits1);
_CLDECDELETE(term0);
_CLDECDELETE(term1);
    dir-&amp;gt;close();
    _CLDECDELETE(dir);
}

void testAddIndexes(CuTest *tc){
char reuters_origdirectory[1024];
  strcpy(reuters_origdirectory, clucene_data_location);
  strcat(reuters_origdirectory, "/reuters-21578-index");

  {
    RAMDirectory dir;
    WhitespaceAnalyzer a;
    IndexWriter w(&amp;amp;dir, &amp;amp;a, true);
    ValueArray&amp;lt;Directory*&amp;gt; dirs(2);
    dirs[0] = FSDirectory::getDirectory(reuters_origdirectory);
    dirs[1] = FSDirectory::getDirectory(reuters_origdirectory);
    w.addIndexesNoOptimize(dirs);
    w.flush();
    CLUCENE_ASSERT(w.docCount()==62); //31 docs in reuters...

    // TODO: Currently there is a double ref-counting mechanism in place for Directory objects,
    //      so we need to dec them both
    dirs[1]-&amp;gt;close();_CLDECDELETE(dirs[1]);
    dirs[0]-&amp;gt;close();_CLDECDELETE(dirs[0]);
  }
  {
    RAMDirectory dir;
    WhitespaceAnalyzer a;
    IndexWriter w(&amp;amp;dir, &amp;amp;a, true);
    ValueArray&amp;lt;Directory*&amp;gt; dirs(2);
    dirs[0] = FSDirectory::getDirectory(reuters_origdirectory);
    dirs[1] = FSDirectory::getDirectory(reuters_origdirectory);
    w.addIndexes(dirs);
    w.flush();
    CLUCENE_ASSERT(w.docCount()==62); //31 docs in reuters...

    // TODO: Currently there is a double ref-counting mechanism in place for Directory objects,
    //      so we need to dec them both
    dirs[1]-&amp;gt;close();_CLDECDELETE(dirs[1]);
    dirs[0]-&amp;gt;close();_CLDECDELETE(dirs[0]);
  }
}

void testHashingBug(CuTest *tc){
  //Manuel Freiholz's indexing bug

  CL_NS(document)::Document doc;
  CL_NS(document)::Field* field;
  CL_NS(analysis::standard)::StandardAnalyzer analyzer;
  CL_NS(store)::RAMDirectory dir;
  CL_NS(index)::IndexWriter writer(&amp;amp;dir, &amp;amp;analyzer, true, true );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VERSION"), _T("1"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_PID"), _T("5"), CL_NS(document)::Field::STORE_YES | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_DATE"), _T("20090722"), CL_NS(document)::Field::STORE_YES | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_SEARCHDATA"), _T("all kind of data"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_TOKENIZED );
  doc.add( (*field) );

  writer.addDocument( &amp;amp;doc ); // ADDING FIRST DOCUMENT. -&amp;gt; this works!

  doc.clear();

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VERSION"), _T("1"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_PID"), _T("5"), CL_NS(document)::Field::STORE_YES | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_LINEID"), _T("20"), CL_NS(document)::Field::STORE_YES | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VT_ORDER"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_H"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_HF"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_D"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_OD"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_P1"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) );

  field = _CLNEW CL_NS(document)::Field( _T("CNS_VN_H1"), _T("456033000"), CL_NS(document)::Field::STORE_NO | CL_NS(document)::Field::INDEX_UNTOKENIZED );
  doc.add( (*field) ); // the problematic field!

  writer.addDocument( &amp;amp;doc ); // ADDING SECOND DOCUMENT - will never return from this function
  writer.optimize();          // stucks in line 222-223
  writer.close();
  _CL_DECREF(&amp;amp;dir);
}

class IWlargeScaleCorrectness_tester {
public:
void invoke(Directory&amp;amp; storage, CuTest *tc);
};

void IWlargeScaleCorrectness_tester::invoke(
Directory&amp;amp; storage,
CuTest *tc
){
SimpleAnalyzer a;

IndexWriter* ndx = _CLNEW IndexWriter(&amp;amp;storage,&amp;amp;a,true);

ndx-&amp;gt;setUseCompoundFile(false);

const long documents = 200;
const long step = 23;
const long inverted_step = 113;
const long repetitions = 5;

CLUCENE_ASSERT(0 == (step * inverted_step + 1) % documents);

long value0;
long value1 = 0;

long block_size = 1;
long reopen = 1;

for (value0 = 0; value0 &amp;lt; documents * repetitions; value0++) {
if (reopen == value0) {
ndx-&amp;gt;optimize();
ndx-&amp;gt;close();
_CLDELETE(ndx);
ndx = _CLNEW IndexWriter(&amp;amp;storage,&amp;amp;a,false);
ndx-&amp;gt;setUseCompoundFile(false);
reopen += block_size;
block_size++;
}

TCHAR* value0_string = NumberTools::longToString(value0 % documents);
TCHAR* value1_string = NumberTools::longToString(value1);

Document doc;

doc.add (
*_CLNEW Field(
_T("field0"),
value0_string,
Field::STORE_YES | Field::INDEX_UNTOKENIZED
)
);
doc.add (
*_CLNEW Field(
_T("field1"),
value1_string,
Field::STORE_YES | Field::INDEX_UNTOKENIZED
)
);
ndx-&amp;gt;addDocument(&amp;amp;doc);

_CLDELETE_ARRAY(value0_string);
_CLDELETE_ARRAY(value1_string);
value1 = (value1 + step) % documents;
}

ndx-&amp;gt;optimize();
ndx-&amp;gt;close();

IndexSearcher searcher(&amp;amp;storage);
Query* query0 = _CLNEW MatchAllDocsQuery;
Sort by_value1(
_CLNEW SortField(
_T("field1"),
SortField::STRING,
true
)
);
Hits* hits0 = searcher.search(query0, &amp;amp;by_value1);
long last = 0;
for (long i = 0; i &amp;lt; hits0-&amp;gt;length(); i++) {
Document&amp;amp; retrieved = hits0-&amp;gt;doc(i);
TCHAR const* value = retrieved.get(_T("field0"));
long current = NumberTools::stringToLong(value);
long delta = (current + documents - last) % documents;
if (0 == (i % repetitions)) {
CLUCENE_ASSERT(inverted_step == delta);
} else {
CLUCENE_ASSERT(0 == delta);
}
last = current;
}
_CLDELETE(query0);
_CLDELETE(hits0);
_CLDELETE(ndx);
}

void testIWlargeScaleCorrectness(CuTest *tc){
char fsdir[CL_MAX_PATH];
_snprintf(fsdir,CL_MAX_PATH,"%s/%s",cl_tempDir, "test.search");
RAMDirectory ram;
FSDirectory* disk = FSDirectory::getDirectory(fsdir);
IWlargeScaleCorrectness_tester().invoke(ram, tc);
IWlargeScaleCorrectness_tester().invoke(*disk, tc);
disk-&amp;gt;close();
_CLDECDELETE(disk);
}

void testExceptionFromTokenStream(CuTest *tc) {

    class TokenFilterWithException : public TokenFilter
    {
    private:
        int count;

    public:
        TokenFilterWithException(TokenStream * in) : 
          TokenFilter(in, true), count(0) {};

          Token* next(Token * pToken) {
              if (count++ == 5) {
                  _CLTHROWA(CL_ERR_IO, "TokenFilterWithException testing IO exception");         
              }
              return input-&amp;gt;next(pToken);
          };
    };

    class AnalyzerWithException : public Analyzer
    {
        TokenStream* lastStream;
    public:
        AnalyzerWithException() { lastStream = NULL; }
        virtual ~AnalyzerWithException() { _CLDELETE( lastStream ); } 
        TokenStream* tokenStream(const TCHAR * fieldName, Reader * reader) {
            return _CLNEW TokenFilterWithException(_CLNEW WhitespaceTokenizer(reader));
        };
        
        TokenStream* reusableTokenStream(const TCHAR* fieldName, CL_NS(util)::Reader* reader)
        {
            _CLDELETE( lastStream );
            lastStream = _CLNEW TokenFilterWithException(_CLNEW WhitespaceTokenizer(reader));
            return lastStream;
        }
    };

    RAMDirectory * dir = _CLNEW RAMDirectory();
    AnalyzerWithException a;
    IndexWriter * writer = _CLNEW IndexWriter(dir, &amp;amp;a, true);

    Document* doc = _CLNEW Document();
    doc-&amp;gt;add(* _CLNEW Field(_T("content"), _T("aa bb cc dd ee ff gg hh ii"),
        Field::STORE_NO | Field::INDEX_TOKENIZED));
    try {
        writer-&amp;gt;addDocument(doc);
        CuFail(tc, _T("did not hit expected exception"));
    } catch (CLuceneError&amp;amp;) {
    }
    _CLLDELETE(doc);

    // Make sure we can add another normal document
    doc = _CLNEW Document();
    doc-&amp;gt;add(* _CLNEW Field(_T("content"), _T("aa bb cc dd"), Field::STORE_NO | Field::INDEX_TOKENIZED));
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    // Make sure we can add another normal document
    doc = _CLNEW Document();
    doc-&amp;gt;add(* _CLNEW Field(_T("content"), _T("aa bb cc dd"), Field::STORE_NO | Field::INDEX_TOKENIZED));
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    writer-&amp;gt;close();
    _CLLDELETE(writer);

    IndexReader* reader = IndexReader::open(dir);
    Term* t = _CLNEW Term(_T("content"), _T("aa"));
    assertEquals(reader-&amp;gt;docFreq(t), 3);
    
    // Make sure the doc that hit the exception was marked
    // as deleted:
    TermDocs* tdocs = reader-&amp;gt;termDocs(t);
    int count = 0;
    while(tdocs-&amp;gt;next()) {
      count++;
    }
    _CLLDELETE(tdocs);
    assertEquals(2, count);
    
    t-&amp;gt;set(_T("content"), _T("gg"));
    assertEquals(reader-&amp;gt;docFreq(t), 0);
    _CLDECDELETE(t);

    reader-&amp;gt;close();
    _CLLDELETE(reader);

    dir-&amp;gt;close();
    _CLDECDELETE(dir);
}

/**
* Make sure we skip wicked long terms.
*/
void testWickedLongTerm(CuTest *tc) {
    RAMDirectory* dir = _CLNEW RAMDirectory();
    StandardAnalyzer a;
    IndexWriter* writer = _CLNEW IndexWriter(dir, &amp;amp;a, true);

    TCHAR bigTerm[16383];
    for (int i=0; i&amp;lt;16383; i++)
        bigTerm[i]=_T('x');
    bigTerm[16382] = 0;

    Document* doc = _CLNEW Document();

    // Max length term is 16383, so this contents produces
    // a too-long term:
    TCHAR* contents = _CL_NEWARRAY(TCHAR, 17000);
    _tcscpy(contents, _T("abc xyz x"));
    _tcscat(contents, bigTerm);
    _tcscat(contents, _T(" another term"));
    doc-&amp;gt;add(* _CLNEW Field(_T("content"), contents, Field::STORE_NO | Field::INDEX_TOKENIZED));
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    // Make sure we can add another normal document
    doc = _CLNEW Document();
    doc-&amp;gt;add(* _CLNEW Field(_T("content"), _T("abc bbb ccc"), Field::STORE_NO | Field::INDEX_TOKENIZED));
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);
    writer-&amp;gt;close();

    IndexReader* reader = IndexReader::open(dir);

    // Make sure all terms &amp;lt; max size were indexed
    Term* t = _CLNEW Term(_T("content"), _T("abc"), true);
    assertEquals(2, reader-&amp;gt;docFreq(t));
    t-&amp;gt;set(_T("content"), _T("bbb"), true);
    assertEquals(1, reader-&amp;gt;docFreq(t));
    t-&amp;gt;set(_T("content"), _T("term"), true);
    assertEquals(1, reader-&amp;gt;docFreq(t));
    t-&amp;gt;set(_T("content"), _T("another"), true);
    assertEquals(1, reader-&amp;gt;docFreq(t));

    // Make sure position is still incremented when
    // massive term is skipped:
    t-&amp;gt;set(_T("content"), _T("another"), true);
    TermPositions* tps = reader-&amp;gt;termPositions(t);
    assertTrue(tps-&amp;gt;next());
    assertEquals(1, tps-&amp;gt;freq());
    assertEquals(3, tps-&amp;gt;nextPosition());
    _CLLDELETE(tps);

    // Make sure the doc that has the massive term is in
    // the index:
    assertEqualsMsg(_T("document with wicked long term should is not in the index!"), 1, reader-&amp;gt;numDocs());

    reader-&amp;gt;close();
    _CLLDELETE(reader);

    // Make sure we can add a document with exactly the
    // maximum length term, and search on that term:
    doc = _CLNEW Document();
    doc-&amp;gt;add(*_CLNEW Field(_T("content"), bigTerm, Field::STORE_NO | Field::INDEX_TOKENIZED));
    StandardAnalyzer sa;
    sa.setMaxTokenLength(100000);
    writer = _CLNEW IndexWriter(dir, &amp;amp;sa, true);
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);
    writer-&amp;gt;close();
    reader = IndexReader::open(dir);
    t-&amp;gt;set(_T("content"), bigTerm);
    assertEquals(1, reader-&amp;gt;docFreq(t));
    reader-&amp;gt;close();

    _CLDECDELETE(t);

    _CLLDELETE(writer);
    _CLLDELETE(reader);

    dir-&amp;gt;close();
    _CLDECDELETE(dir);
}


void testDeleteDocument(CuTest* tc) {
    const int size = 205;
    RAMDirectory* dir = _CLNEW RAMDirectory();
    StandardAnalyzer a;
    IndexWriter* writer = _CLNEW IndexWriter(dir, &amp;amp;a, true);

    // build an index that is big enough that a deletion files is written
    // in the DGaps format
    for (int i = 0; i &amp;lt; size; i++) {
        Document* doc = _CLNEW Document();
        TCHAR* contents = _CL_NEWARRAY(TCHAR, (size / 10) + 1);
        _i64tot(i, contents, 10);
        doc-&amp;gt;add(* _CLNEW Field(_T("content"), contents, Field::STORE_NO | Field::INDEX_TOKENIZED));
        writer-&amp;gt;addDocument(doc);
        _CLDELETE_ARRAY( contents );
        _CLLDELETE(doc);
    }

    // assure that the index has only one segment
    writer-&amp;gt;optimize();
    // close and flush index
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    // reopen the index and delete the document next to last
    writer = _CLNEW IndexWriter(dir, &amp;amp;a, false);
    TCHAR* contents = _CL_NEWARRAY(TCHAR, (size / 10) + 1);
    _i64tot(size - 2, contents, 10);
    Term* t = _CLNEW Term(_T("content"), contents);
    _CLDELETE_LARRAY( contents );
    writer-&amp;gt;deleteDocuments(t);
    writer-&amp;gt;close();

    // now the index has a deletion file in the DGaps format

    _CLLDELETE(writer);
    _CLDECDELETE(t);

    // open this index with a searcher to read the deletions file again 
    IndexReader* reader = IndexReader::open(dir);
    IndexSearcher* searcher = _CLNEW IndexSearcher(reader);
    searcher-&amp;gt;close();
    reader-&amp;gt;close();
    _CLLDELETE(searcher);
    _CLLDELETE(reader);

    dir-&amp;gt;close();
    _CLLDELETE( dir );
}

void testMergeIndex(CuTest* tc) {

    // A crash depends on the following:
    // - The first document needs two differently named fields that set TERMVECTOR_YES.
    // - The IndexWriter needs to reopen an existing index.
    // - The reopened IndexWriter needs to call optimize() to force a merge
    //   on term vectors. This merging causes the crash.
    // Submitted by McCann

    RAMDirectory* dir = _CLNEW RAMDirectory();

    // open a new lucene index
    SimpleAnalyzer a;
    IndexWriter* writer = _CLNEW IndexWriter( dir, false, &amp;amp;a, true );
    writer-&amp;gt;setUseCompoundFile( false );

    // add two fields to document
    Document* doc = _CLNEW Document();
    doc-&amp;gt;add ( *_CLNEW Field(_T("field0"), _T("value0"), Field::STORE_NO | Field::TERMVECTOR_YES | Field::INDEX_TOKENIZED) );
    doc-&amp;gt;add ( *_CLNEW Field(_T("field1"), _T("value1"), Field::STORE_NO | Field::TERMVECTOR_YES | Field::INDEX_TOKENIZED) );
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    // close and flush index
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    // open the previous lucene index
    writer = _CLNEW IndexWriter( dir, false, &amp;amp;a, false );
    writer-&amp;gt;setUseCompoundFile( false );

    // add a field to document
    // note: the settings on this field don't seem to affect the crash
    doc = _CLNEW Document();
    doc-&amp;gt;add ( *_CLNEW Field(_T("field"), _T("value"), Field::STORE_NO | Field::TERMVECTOR_YES | Field::INDEX_TOKENIZED) );
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    // optimize index to force a merge
    writer-&amp;gt;optimize();
    // close and flush index
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    // Close directory
    dir-&amp;gt;close();
  _CLLDELETE( dir );
}

void testOptimizeDelete(CuTest* tc) {

    RAMDirectory* dir = _CLNEW RAMDirectory();
    SimpleAnalyzer a;
    IndexWriter* writer;
    IndexReader* reader;
    Document* doc;

    writer = _CLNEW IndexWriter( dir, false, &amp;amp;a, true );

    doc = _CLNEW Document();
    doc-&amp;gt;add ( *_CLNEW Field(_T("field0"), _T("value0"), Field::STORE_NO | Field::TERMVECTOR_YES | Field::INDEX_TOKENIZED) );
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);
    //writer-&amp;gt;optimize();
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    reader = IndexReader::open(dir);
    reader-&amp;gt;deleteDoc( 0 );
    reader-&amp;gt;close();
    _CLLDELETE(reader);

    writer = _CLNEW IndexWriter(dir, &amp;amp;a, false);
    writer-&amp;gt;optimize();
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    writer = _CLNEW IndexWriter(dir, &amp;amp;a, false);
    doc = _CLNEW Document();
    doc-&amp;gt;add ( *_CLNEW Field(_T("field0"), _T("value1"), Field::STORE_NO | Field::TERMVECTOR_YES | Field::INDEX_TOKENIZED) );
    writer-&amp;gt;addDocument(doc);
    _CLLDELETE(doc);

    writer-&amp;gt;optimize();
    writer-&amp;gt;close();
    _CLLDELETE( writer );

    dir-&amp;gt;close();
    _CLLDELETE( dir );
}

CuSuite *testindexwriter(void)
{
     CuSuite *suite = CuSuiteNew(_T("CLucene IndexWriter Test"));
    SUITE_ADD_TEST(suite, testHashingBug);
    SUITE_ADD_TEST(suite, testAddIndexes);
    SUITE_ADD_TEST(suite, testIWmergeSegments1);
    SUITE_ADD_TEST(suite, testIWmergeSegments2);
    SUITE_ADD_TEST(suite, testIWmergePhraseSegments);
    SUITE_ADD_TEST(suite, testIWlargeScaleCorrectness);

    // TODO: This test fails due to differences between CLucene's StandardTokenizer and JLucene's; this test
    // should work when the tokenizer will be brought up-to-date, 
    //SUITE_ADD_TEST(suite, testWickedLongTerm);

    SUITE_ADD_TEST(suite, testExceptionFromTokenStream);
    SUITE_ADD_TEST(suite, testDeleteDocument);
    SUITE_ADD_TEST(suite, testMergeIndex);
    SUITE_ADD_TEST(suite, testOptimizeDelete);

    return suite;
}
// EOF
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Šplíchal Jiří</dc:creator>
    <dc:date>2012-04-12T12:18:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4098">
    <title>Re: Does CLucene 32 bits version work on 64 bitswindows?</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4098</link>
    <description>&lt;pre&gt;Hi Ahmed,

the same here. We also use CLucene on 64 bit Windows machines. Up to
now, we didn't face any problems with CLucene crashing.

Best regards,

Veit

2012/3/21 Ahmed &amp;lt;ci7nusha-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt;:

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
&lt;/pre&gt;</description>
    <dc:creator>Veit Jahns</dc:creator>
    <dc:date>2012-04-01T15:15:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4097">
    <title>MultiSearch How to?</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4097</link>
    <description>&lt;pre&gt;Hi,

I have a problem in searching multiple indexes.
We have two options to do this
*1- using MuliSearcher*
with this option i always get hits from the second index only however i use
MultiSearcher::subSearcher(int32_tn)  to be sure that the hit is from 
the index number (0)
here is a code sample
Searchable*s[3]={newIndexSearcher(firstIndexPath),newIndexSearcher(secondIndexPath()),NULL};
MultiSearcher * searcher  = new MultiSearcher(s);
Hits * hits = searcher-&amp;gt;search(query);
for(int i = 0; i &amp;lt; hits-&amp;gt;length(); i++){
cout&amp;lt;&amp;lt;searcher-&amp;gt;subSearcher(i);
}

The Result is
0
0
1
1

So it means that i have hits from each index, but when i try to get the 
docs i always found that the docs came from the second index!

*2- Using MultiReader*
with this option i couldn't make the app to compile.
here is a code sample
         
lucene::util::Array&amp;lt;IndexReader*&amp;gt;*r=newlucene::util::Array&amp;lt;IndexReader*&amp;gt;(3); 


     r[0]  =  IndexReader::open(firstIndexPath);

     r[1]  =  IndexReader::open(secondIndexPath);

     r[2]  =  NULL;

     MultiReader  *  multiReader  =  new  MultiReader(r);

m_searcher=newIndexSearcher(multiReader);

I always get an error
error: invalid conversion from 'lucene::index::IndexReader*' to 
'unsigned int'

How can I search multiple Indexes?

Sincerely,

&lt;/pre&gt;</description>
    <dc:creator>Mohammad ismael</dc:creator>
    <dc:date>2012-03-22T06:50:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4096">
    <title>Re: Does CLucene 32 bits version work on 64 bitswindows?</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4096</link>
    <description>&lt;pre&gt;I use 64 bit all the time, without any problems.

b


On 22 March 2012 08:31, Ahmed &amp;lt;ci7nusha-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Ben van Klinken</dc:creator>
    <dc:date>2012-03-21T23:02:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4095">
    <title>Does CLucene 32 bits version work on 64 bits windows?</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4095</link>
    <description>&lt;pre&gt;------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Ahmed</dc:creator>
    <dc:date>2012-03-21T22:31:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4094">
    <title>Re: searchAfter / TopDocs Pagination</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4094</link>
    <description>&lt;pre&gt;2012/2/28  &amp;lt;dulsi-BueaZOdMHbf4LOl6HQGc+WXnswh1EIUO&amp;lt; at &amp;gt;public.gmane.org&amp;gt;:

Sorry for coming back to your question so late. Somehow I thought, I
had already answered it. As far as I know Lucene++ is stable. For
CLucene we wanted it as fast as possible, i.e., reducing the usage of
the shared pointers in Lucene++.

Kind regards,
Veit

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
&lt;/pre&gt;</description>
    <dc:creator>Veit Jahns</dc:creator>
    <dc:date>2012-03-18T00:09:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4093">
    <title>Re: help ! - using LanguageBasedAnalyzer/CJKTokenizer returns wrong result</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4093</link>
    <description>&lt;pre&gt;Hi Vivien,

sorry, it took some time. Maybe this is an encoding issue. What
encoding do your source code files have? I got the same result, when
the encoding is UTF-8. But CLucene works internally with UTF-16 and in
this case handles the string and the query as an UTF-16 encoded
string. Thus, the created index is more or less useless.

But if I transcode the string from UTF-8 to UTF-16 before I put it
into the index, the index looks fine
and I get the correct number of results.

Kind regards,

Veit

------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
&lt;/pre&gt;</description>
    <dc:creator>Veit Jahns</dc:creator>
    <dc:date>2012-03-11T21:20:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4092">
    <title>akaleigh</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4092</link>
    <description>&lt;pre&gt;
http://cuduqjfj85.webs.com/index.htm?axipageID=30
Yeah, okay.Ill go myself, next time.Roberta, no, Henry said.

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
&lt;/pre&gt;</description>
    <dc:creator>Yao Xu</dc:creator>
    <dc:date>2012-03-05T14:50:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4091">
    <title>vetabyrd</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4091</link>
    <description>&lt;pre&gt;
http://jnagegum44.webs.com/index.htm?sufprof=55
 Hungry for hard information, people who were already on the run pulled off the highway to see the President speak. Thats enough, fella! Beaver cried.But the kid.

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
&lt;/pre&gt;</description>
    <dc:creator>Yao Xu</dc:creator>
    <dc:date>2012-03-05T14:48:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4090">
    <title>Re: unicode type is not judged correctly on Macmachine</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4090</link>
    <description>&lt;pre&gt;In case anyone else is having the same problem:

Problem is solved by setting the C++ compiler to LLVM GCC 4.2, rather than using Apple LLVM compiler 3.0.



-----Original Message-----
From: Vivien Meng [mailto:V.Meng-dF0/z2Fx1RMQrrorzV6ljw&amp;lt; at &amp;gt;public.gmane.org] 
Sent: Sunday, 4 March 2012 12:27 PM
To: clucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
Subject: [CLucene-dev] unicode type is not judged correctly on Mac machine

Hi:


I am using CLucene in Xcode on Mac.

While I debug into file gunichartables.cpp (belong to share), method bool cl_isletter(gunichar c), the TYPE that is returned by int t = TYPE(c) is not correct, I know that the particular character should belong to G_UNICODE_OTHER_LETTER (as it is a Chinese character), but TYPE does not return the correct type.

I know this works on Windows environment, I am wondering if anyone knows how to set some settings/switches on Mac to get the functions in gunichartables.cpp to work properly for multiple bytes characters on Mac.

It would be very much appreciated.

------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
&lt;/pre&gt;</description>
    <dc:creator>Vivien Meng</dc:creator>
    <dc:date>2012-03-05T00:43:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4089">
    <title>unicode type is not judged correctly on Mac machine</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4089</link>
    <description>&lt;pre&gt;Hi:


I am using CLucene in Xcode on Mac.

While I debug into file gunichartables.cpp (belong to share), method bool cl_isletter(gunichar c), the TYPE that is returned by int t = TYPE(c) is not correct, I know that the particular character should belong to G_UNICODE_OTHER_LETTER (as it is a Chinese character), but TYPE does not return the correct type.

I know this works on Windows environment, I am wondering if anyone knows how to set some settings/switches on Mac to get the functions in gunichartables.cpp to work properly for multiple bytes characters on Mac.

It would be very much appreciated.

------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
&lt;/pre&gt;</description>
    <dc:creator>Vivien Meng</dc:creator>
    <dc:date>2012-03-04T01:26:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4088">
    <title>Re: help ! - using LanguageBasedAnalyzer/CJKTokenizer returns wrong result</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4088</link>
    <description>&lt;pre&gt;I'd suggest using Luke to compare what javas behaviour is
On Feb 28, 2012 10:51 PM, "Veit Jahns" &amp;lt;nuncupatio-gM/Ye1E23mwN+BqQ9rBEUg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Ben van Klinken</dc:creator>
    <dc:date>2012-02-28T21:47:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4087">
    <title>Re: searchAfter / TopDocs Pagination</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4087</link>
    <description>&lt;pre&gt;
How stable is Lucene++? Does it just have some unimplemented functionality
from java lucene or is there other problems?


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
&lt;/pre&gt;</description>
    <dc:creator>dulsi-BueaZOdMHbf4LOl6HQGc+WXnswh1EIUO&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2012-02-28T14:01:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4086">
    <title>Re: help ! - using LanguageBasedAnalyzer/CJKTokenizer returns wrong result</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4086</link>
    <description>&lt;pre&gt;Hi Vivien!

2012/2/27 Vivien Meng &amp;lt;V.Meng-dF0/z2Fx1RMQrrorzV6ljw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;


No, I don't know anyone. Sorry.



Looks good. What will be interesting to know is, what q2-&amp;gt;toString()
returns. Then you see what query is actually used for getting the hits. But
I will try your code myself also.

Best regards,

Veit
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Veit Jahns</dc:creator>
    <dc:date>2012-02-28T12:51:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4085">
    <title>Re: help ! - using LanguageBasedAnalyzer/CJKTokenizer returns wrong result</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4085</link>
    <description>&lt;pre&gt;Hi Veit:


Thanks for your reply.

Do you know if there is anyone using CJKTokenizer?

Here is the code, no parsing error that I can see:

    Directory* store = NULL;
    store = _CLNEW RAMDirectory();
    const TCHAR* contentField = _T("contents");
    const TCHAR* test = _T("这里我们所论及的是有儿童参加的最初级足球协会red green");
    const TCHAR* cjk = _T("cjk");
    Document doc;

    IndexWriter* writer = NULL;
    IndexReader* reader = NULL;

    LanguageBasedAnalyzer* an = _CLNEW LanguageBasedAnalyzer(cjk, false);

    Query* q2 = NULL;
    Hits* h2 = NULL;
    const TCHAR* qry2 = _T("提");

    writer = _CLNEW IndexWriter(store, an, true);

    doc.add(*_CLNEW Field(contentField, test, Field::STORE_YES | Field::INDEX_TOKENIZED));

    writer-&amp;gt;addDocument(&amp;amp;doc);
    writer-&amp;gt;optimize();

    // Close and clean up
    writer-&amp;gt;close();
    _CLLDELETE(writer);

    // verify the result
    reader =  IndexReader::open(store);
    IndexSearcher search(reader);

    q2 = QueryParser::parse(qry2 , contentField, an);
    if ( q2 != NULL )
    {
        h2 = search.search( q2 );

        size_t a = h2-&amp;gt;length();

        printf("second query is %d", (int)a);
    }

    reader-&amp;gt;close();


From: Veit Jahns [mailto:nuncupatio&amp;lt; at &amp;gt;googlemail.com]
Sent: Tuesday, 28 February 2012 12:12 AM
To: clucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net
Subject: Re: [CLucene-dev] help ! - using LanguageBasedAnalyzer/CJKTokenizer returns wrong result

Hi Vivien,

maybe something is wrong with parsing the query. Is your query parse correctly? What parsed query do you get from the QueryParser?

Kind regards,

Veit
2012/2/26 Vivien Meng &amp;lt;V.Meng&amp;lt; at &amp;gt;qsr.com.au&amp;lt;mailto:V.Meng&amp;lt; at &amp;gt;qsr.com.au&amp;gt;&amp;gt;
Hi:


I make an instance of class by doing the following:
LanguageBasedAnalyzer* analyser = new LanguageBasedAnalyzer(“cjk”, false);

With the parameter “ckj”, I’d like to use the CJKTokenizer to deal with Chinese characters.
But, the search result is not correct:

Say if I have indexed the following contents:
这里我们所论及的是有儿童参加的最初级足球协会

Then, I’d like to search for the word 提 (obviously, it is not in the indexed contents), I am expecting the query hits should return 0, but the actual result is 1.

Anybody has any idea if CJKTokenizer works?  If not, is there any analyser/tokenizer that can deal with Chinese properly?

P.S. I am using CLucene in a Xcode project.


Thanks in advance.



Vivien Meng  Software Developer
QSR International Pty Ltd
2nd Floor, 651 Doncaster Road   |   Doncaster Victoria 3108 Australia
T  +61 3 9840 1100&amp;lt;tel:%2B61%203%209840%201100&amp;gt;  F  +61 3 9840 1500&amp;lt;tel:%2B61%203%209840%201500&amp;gt;
v.meng&amp;lt; at &amp;gt;qsrinternational.com&amp;lt;mailto:v.meng&amp;lt; at &amp;gt;qsrinternational.com&amp;gt;   |   www.qsrinternational.com&amp;lt;http://www.qsrinternational.com&amp;gt;

[Description: C:\Users\VMeng\AppData\Roaming\Microsoft\Signatures\qsr_logo_signature.gif]

Please consider the environment before printing this email.

  [Description: C:\Users\VMeng\AppData\Roaming\Microsoft\Signatures\QSR_enviro-graphic.gif]


________________________________

Disclaimer
This transmission may contain information which is confidential and privileged and intended only for the addressee. If you are not the addressee you may not use, disseminate or copy this information. If you have received this information in error please notify the sender immediately. Thank you.



------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
CLucene-developers mailing list
CLucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net&amp;lt;mailto:CLucene-developers&amp;lt; at &amp;gt;lists.sourceforge.net&amp;gt;
https://lists.sourceforge.net/lists/listinfo/clucene-developers

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Vivien Meng</dc:creator>
    <dc:date>2012-02-27T22:59:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4084">
    <title>Re: searchAfter / TopDocs Pagination</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/4084</link>
    <description>&lt;pre&gt;Hi David,

the current CLucene version is a port of Lucene 2.3.2. But these methods
were introduced in a later version of Lucene (&amp;gt; 3, I think). So, there no
way to do paging out of the box.You have to implement it yourself.

Maybe Lucene++ [1] supports this. It is a port of a later Lucene version by
Alan and Ben. We tried once to make this the new CLucene version, but
havn't finished it yet.

Kind regards,

Veit

[1] https://github.com/luceneplusplus/LucenePlusPlus

2012/2/27 David Linde &amp;lt;davidlinde-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2_______________________________________________
CLucene-developers mailing list
CLucene-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/clucene-developers
&lt;/pre&gt;</description>
    <dc:creator>Veit Jahns</dc:creator>
    <dc:date>2012-02-27T14:38:59</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.jakarta.lucene.clucene.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.jakarta.lucene.clucene.devel</link>
  </textinput>
</rdf:RDF>

