You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Gabriele Kahlout <ga...@mysimpatico.com> on 2011/07/05 19:48:21 UTC
Cannot I search documents added by IndexWriter after commit?
@Test
public void testUpdate() throws IOException,
ParserConfigurationException, SAXException, ParseException {
Analyzer analyzer = getAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_32, content,
analyzer);
Query allQ = parser.parse("*:*");
IndexWriter writer = getWriter();
IndexSearcher searcher = new IndexSearcher(IndexReader.open(writer,
true));
TopDocs docs = searcher.search(allQ, 10);
* assertEquals(0, docs.totalHits); // empty/no index*
Document doc = getDoc();
writer.addDocument(doc);
writer.commit();
docs = searcher.search(allQ, 10);
* assertEquals(1,docs.totalHits); //it fails here. docs.totalHits
equals 0*
}
What am I doing wrong here?
If I initialize searcher with new IndexSearcher(directory) I'm told:
org.apache.lucene.index.IndexNotFoundException: no segments* file found in
org.apache.lucene.store.RAMDirectory@3caa4blockFactory=org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
files: []
--
Regards,
K. Gabriele
--- unchanged since 20/9/10 ---
P.S. If the subject contains "[LON]" or the addressee acknowledges the
receipt within 48 hours then I don't resend the email.
subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
< Now + 48h) ⇒ ¬resend(I, this).
If an email is sent by a sender that is not a trusted contact or the email
does not contain a valid code then the email is not received. A valid code
starts with a hyphen and ends with "X".
∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
L(-[a-z]+[0-9]X)).
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Robert Muir <rc...@gmail.com>.
re-open does work, but you cannot ignore its return value! see the
javadocs for an example.
On Tue, Jul 5, 2011 at 3:10 PM, Gabriele Kahlout
<ga...@mysimpatico.com> wrote:
> Re-open doens't work, but open does.
>
> @Test
> public void testUpdate() throws IOException,
> ParserConfigurationException, SAXException, ParseException {
> Analyzer analyzer = getAnalyzer();
> QueryParser parser = new QueryParser(Version.LUCENE_32, content,
> analyzer);
> Query allQ = parser.parse("*:*");
>
> IndexWriter writer = getWriter();
> final IndexReader indexReader = IndexReader.open(writer, true);
>
> IndexSearcher searcher = new IndexSearcher(indexReader);
> TopDocs docs = searcher.search(allQ, 10);
> assertEquals(0, docs.totalHits); // empty/no index
>
> Document doc = getDoc();
> writer.addDocument(doc);
> writer.commit();
>
> searcher = new IndexSearcher(IndexReader.open(writer, true));//new
> IndexSearcher(directory);
> docs = searcher.search(allQ, 10);
> assertEquals(1, docs.totalHits);
> }
>
> On Tue, Jul 5, 2011 at 8:23 PM, Gabriele Kahlout
> <ga...@mysimpatico.com>wrote:
>
>> Still won't work (same as before).
>>
>>
>> @Test
>> public void testUpdate() throws IOException,
>> ParserConfigurationException, SAXException, ParseException {
>> Analyzer analyzer = getAnalyzer();
>> QueryParser parser = new QueryParser(Version.LUCENE_32, content,
>> analyzer);
>> Query allQ = parser.parse("*:*");
>>
>> IndexWriter writer = getWriter();
>> final IndexReader indexReader = IndexReader.open(writer, true);
>>
>> IndexSearcher searcher = new IndexSearcher(indexReader);
>>
>> TopDocs docs = searcher.search(allQ, 10);
>> assertEquals(0, docs.totalHits); // empty/no index
>>
>> Document doc = getDoc();
>> writer.addDocument(doc);
>> writer.commit();
>>
>> * indexReader.reopen();
>> searcher = new IndexSearcher(indexReader);
>>
>> docs = searcher.search(allQ, 10);
>> *
>> assertEquals(1,docs.totalHits);
>> }
>>
>> private Document getDoc() {
>> Document doc = new Document();
>> doc.add(new Field("id", "0", Field.Store.YES,
>> Field.Index.NOT_ANALYZED));
>> return doc;
>> }
>>
>> private IndexWriter getWriter() throws IOException { // 2
>> return new IndexWriter(directory, new WhitespaceAnalyzer(), // 2
>> IndexWriter.MaxFieldLength.UNLIMITED); // 2
>>
>> }
>>
>> On Tue, Jul 5, 2011 at 8:15 PM, Michael McCandless <
>> lucene@mikemccandless.com> wrote:
>>
>>> Sorry, you must reopen the underlying IndexReader, and then make a new
>>> IndexSearcher from the reopened reader.
>>>
>>> Mike McCandless
>>>
>>> http://blog.mikemccandless.com
>>>
>>> On Tue, Jul 5, 2011 at 2:12 PM, Gabriele Kahlout
>>> <ga...@mysimpatico.com> wrote:
>>> > and how do you do that? There is no reopen method
>>> >
>>> > On Tue, Jul 5, 2011 at 8:09 PM, Michael McCandless <
>>> > lucene@mikemccandless.com> wrote:
>>> >
>>> >> After your writer.commit you need to reopen your searcher to see the
>>> >> changes.
>>> >>
>>> >> Mike McCandless
>>> >>
>>> >> http://blog.mikemccandless.com
>>> >>
>>> >> On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
>>> >> <ga...@mysimpatico.com> wrote:
>>> >> > @Test
>>> >> > public void testUpdate() throws IOException,
>>> >> > ParserConfigurationException, SAXException, ParseException {
>>> >> > Analyzer analyzer = getAnalyzer();
>>> >> > QueryParser parser = new QueryParser(Version.LUCENE_32,
>>> content,
>>> >> > analyzer);
>>> >> > Query allQ = parser.parse("*:*");
>>> >> >
>>> >> > IndexWriter writer = getWriter();
>>> >> > IndexSearcher searcher = new
>>> >> IndexSearcher(IndexReader.open(writer,
>>> >> > true));
>>> >> > TopDocs docs = searcher.search(allQ, 10);
>>> >> > * assertEquals(0, docs.totalHits); // empty/no index*
>>> >> >
>>> >> > Document doc = getDoc();
>>> >> > writer.addDocument(doc);
>>> >> > writer.commit();
>>> >> >
>>> >> > docs = searcher.search(allQ, 10);
>>> >> > * assertEquals(1,docs.totalHits); //it fails here.
>>> docs.totalHits
>>> >> > equals 0*
>>> >> > }
>>> >> > What am I doing wrong here?
>>> >> >
>>> >> > If I initialize searcher with new IndexSearcher(directory) I'm told:
>>> >> > org.apache.lucene.index.IndexNotFoundException: no segments* file
>>> found
>>> >> in
>>> >> > org.apache.lucene.store.RAMDirectory@3caa4blockFactory
>>> >> =org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
>>> >> > files: []
>>> >> >
>>> >> > --
>>> >> > Regards,
>>> >> > K. Gabriele
>>> >> >
>>> >> > --- unchanged since 20/9/10 ---
>>> >> > P.S. If the subject contains "[LON]" or the addressee acknowledges
>>> the
>>> >> > receipt within 48 hours then I don't resend the email.
>>> >> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>>> >> time(x)
>>> >> > < Now + 48h) ⇒ ¬resend(I, this).
>>> >> >
>>> >> > If an email is sent by a sender that is not a trusted contact or the
>>> >> email
>>> >> > does not contain a valid code then the email is not received. A valid
>>> >> code
>>> >> > starts with a hyphen and ends with "X".
>>> >> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧
>>> y ∈
>>> >> > L(-[a-z]+[0-9]X)).
>>> >> >
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Regards,
>>> > K. Gabriele
>>> >
>>> > --- unchanged since 20/9/10 ---
>>> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
>>> > receipt within 48 hours then I don't resend the email.
>>> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>>> time(x)
>>> > < Now + 48h) ⇒ ¬resend(I, this).
>>> >
>>> > If an email is sent by a sender that is not a trusted contact or the
>>> email
>>> > does not contain a valid code then the email is not received. A valid
>>> code
>>> > starts with a hyphen and ends with "X".
>>> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>>> > L(-[a-z]+[0-9]X)).
>>> >
>>>
>>
>>
>>
>> --
>> Regards,
>> K. Gabriele
>>
>> --- unchanged since 20/9/10 ---
>> P.S. If the subject contains "[LON]" or the addressee acknowledges the
>> receipt within 48 hours then I don't resend the email.
>> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>> time(x) < Now + 48h) ⇒ ¬resend(I, this).
>>
>> If an email is sent by a sender that is not a trusted contact or the email
>> does not contain a valid code then the email is not received. A valid code
>> starts with a hyphen and ends with "X".
>> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>> L(-[a-z]+[0-9]X)).
>>
>>
>
>
> --
> Regards,
> K. Gabriele
>
> --- unchanged since 20/9/10 ---
> P.S. If the subject contains "[LON]" or the addressee acknowledges the
> receipt within 48 hours then I don't resend the email.
> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
> < Now + 48h) ⇒ ¬resend(I, this).
>
> If an email is sent by a sender that is not a trusted contact or the email
> does not contain a valid code then the email is not received. A valid code
> starts with a hyphen and ends with "X".
> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> L(-[a-z]+[0-9]X)).
>
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Gabriele Kahlout <ga...@mysimpatico.com>.
Re-open doens't work, but open does.
@Test
public void testUpdate() throws IOException,
ParserConfigurationException, SAXException, ParseException {
Analyzer analyzer = getAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_32, content,
analyzer);
Query allQ = parser.parse("*:*");
IndexWriter writer = getWriter();
final IndexReader indexReader = IndexReader.open(writer, true);
IndexSearcher searcher = new IndexSearcher(indexReader);
TopDocs docs = searcher.search(allQ, 10);
assertEquals(0, docs.totalHits); // empty/no index
Document doc = getDoc();
writer.addDocument(doc);
writer.commit();
searcher = new IndexSearcher(IndexReader.open(writer, true));//new
IndexSearcher(directory);
docs = searcher.search(allQ, 10);
assertEquals(1, docs.totalHits);
}
On Tue, Jul 5, 2011 at 8:23 PM, Gabriele Kahlout
<ga...@mysimpatico.com>wrote:
> Still won't work (same as before).
>
>
> @Test
> public void testUpdate() throws IOException,
> ParserConfigurationException, SAXException, ParseException {
> Analyzer analyzer = getAnalyzer();
> QueryParser parser = new QueryParser(Version.LUCENE_32, content,
> analyzer);
> Query allQ = parser.parse("*:*");
>
> IndexWriter writer = getWriter();
> final IndexReader indexReader = IndexReader.open(writer, true);
>
> IndexSearcher searcher = new IndexSearcher(indexReader);
>
> TopDocs docs = searcher.search(allQ, 10);
> assertEquals(0, docs.totalHits); // empty/no index
>
> Document doc = getDoc();
> writer.addDocument(doc);
> writer.commit();
>
> * indexReader.reopen();
> searcher = new IndexSearcher(indexReader);
>
> docs = searcher.search(allQ, 10);
> *
> assertEquals(1,docs.totalHits);
> }
>
> private Document getDoc() {
> Document doc = new Document();
> doc.add(new Field("id", "0", Field.Store.YES,
> Field.Index.NOT_ANALYZED));
> return doc;
> }
>
> private IndexWriter getWriter() throws IOException { // 2
> return new IndexWriter(directory, new WhitespaceAnalyzer(), // 2
> IndexWriter.MaxFieldLength.UNLIMITED); // 2
>
> }
>
> On Tue, Jul 5, 2011 at 8:15 PM, Michael McCandless <
> lucene@mikemccandless.com> wrote:
>
>> Sorry, you must reopen the underlying IndexReader, and then make a new
>> IndexSearcher from the reopened reader.
>>
>> Mike McCandless
>>
>> http://blog.mikemccandless.com
>>
>> On Tue, Jul 5, 2011 at 2:12 PM, Gabriele Kahlout
>> <ga...@mysimpatico.com> wrote:
>> > and how do you do that? There is no reopen method
>> >
>> > On Tue, Jul 5, 2011 at 8:09 PM, Michael McCandless <
>> > lucene@mikemccandless.com> wrote:
>> >
>> >> After your writer.commit you need to reopen your searcher to see the
>> >> changes.
>> >>
>> >> Mike McCandless
>> >>
>> >> http://blog.mikemccandless.com
>> >>
>> >> On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
>> >> <ga...@mysimpatico.com> wrote:
>> >> > @Test
>> >> > public void testUpdate() throws IOException,
>> >> > ParserConfigurationException, SAXException, ParseException {
>> >> > Analyzer analyzer = getAnalyzer();
>> >> > QueryParser parser = new QueryParser(Version.LUCENE_32,
>> content,
>> >> > analyzer);
>> >> > Query allQ = parser.parse("*:*");
>> >> >
>> >> > IndexWriter writer = getWriter();
>> >> > IndexSearcher searcher = new
>> >> IndexSearcher(IndexReader.open(writer,
>> >> > true));
>> >> > TopDocs docs = searcher.search(allQ, 10);
>> >> > * assertEquals(0, docs.totalHits); // empty/no index*
>> >> >
>> >> > Document doc = getDoc();
>> >> > writer.addDocument(doc);
>> >> > writer.commit();
>> >> >
>> >> > docs = searcher.search(allQ, 10);
>> >> > * assertEquals(1,docs.totalHits); //it fails here.
>> docs.totalHits
>> >> > equals 0*
>> >> > }
>> >> > What am I doing wrong here?
>> >> >
>> >> > If I initialize searcher with new IndexSearcher(directory) I'm told:
>> >> > org.apache.lucene.index.IndexNotFoundException: no segments* file
>> found
>> >> in
>> >> > org.apache.lucene.store.RAMDirectory@3caa4blockFactory
>> >> =org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
>> >> > files: []
>> >> >
>> >> > --
>> >> > Regards,
>> >> > K. Gabriele
>> >> >
>> >> > --- unchanged since 20/9/10 ---
>> >> > P.S. If the subject contains "[LON]" or the addressee acknowledges
>> the
>> >> > receipt within 48 hours then I don't resend the email.
>> >> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>> >> time(x)
>> >> > < Now + 48h) ⇒ ¬resend(I, this).
>> >> >
>> >> > If an email is sent by a sender that is not a trusted contact or the
>> >> email
>> >> > does not contain a valid code then the email is not received. A valid
>> >> code
>> >> > starts with a hyphen and ends with "X".
>> >> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧
>> y ∈
>> >> > L(-[a-z]+[0-9]X)).
>> >> >
>> >>
>> >
>> >
>> >
>> > --
>> > Regards,
>> > K. Gabriele
>> >
>> > --- unchanged since 20/9/10 ---
>> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
>> > receipt within 48 hours then I don't resend the email.
>> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>> time(x)
>> > < Now + 48h) ⇒ ¬resend(I, this).
>> >
>> > If an email is sent by a sender that is not a trusted contact or the
>> email
>> > does not contain a valid code then the email is not received. A valid
>> code
>> > starts with a hyphen and ends with "X".
>> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>> > L(-[a-z]+[0-9]X)).
>> >
>>
>
>
>
> --
> Regards,
> K. Gabriele
>
> --- unchanged since 20/9/10 ---
> P.S. If the subject contains "[LON]" or the addressee acknowledges the
> receipt within 48 hours then I don't resend the email.
> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
> time(x) < Now + 48h) ⇒ ¬resend(I, this).
>
> If an email is sent by a sender that is not a trusted contact or the email
> does not contain a valid code then the email is not received. A valid code
> starts with a hyphen and ends with "X".
> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> L(-[a-z]+[0-9]X)).
>
>
--
Regards,
K. Gabriele
--- unchanged since 20/9/10 ---
P.S. If the subject contains "[LON]" or the addressee acknowledges the
receipt within 48 hours then I don't resend the email.
subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
< Now + 48h) ⇒ ¬resend(I, this).
If an email is sent by a sender that is not a trusted contact or the email
does not contain a valid code then the email is not received. A valid code
starts with a hyphen and ends with "X".
∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
L(-[a-z]+[0-9]X)).
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Gabriele Kahlout <ga...@mysimpatico.com>.
Still won't work (same as before).
@Test
public void testUpdate() throws IOException,
ParserConfigurationException, SAXException, ParseException {
Analyzer analyzer = getAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_32, content,
analyzer);
Query allQ = parser.parse("*:*");
IndexWriter writer = getWriter();
final IndexReader indexReader = IndexReader.open(writer, true);
IndexSearcher searcher = new IndexSearcher(indexReader);
TopDocs docs = searcher.search(allQ, 10);
assertEquals(0, docs.totalHits); // empty/no index
Document doc = getDoc();
writer.addDocument(doc);
writer.commit();
* indexReader.reopen();
searcher = new IndexSearcher(indexReader);
docs = searcher.search(allQ, 10);*
assertEquals(1,docs.totalHits);
}
private Document getDoc() {
Document doc = new Document();
doc.add(new Field("id", "0", Field.Store.YES,
Field.Index.NOT_ANALYZED));
return doc;
}
private IndexWriter getWriter() throws IOException { // 2
return new IndexWriter(directory, new WhitespaceAnalyzer(), // 2
IndexWriter.MaxFieldLength.UNLIMITED); // 2
}
On Tue, Jul 5, 2011 at 8:15 PM, Michael McCandless <
lucene@mikemccandless.com> wrote:
> Sorry, you must reopen the underlying IndexReader, and then make a new
> IndexSearcher from the reopened reader.
>
> Mike McCandless
>
> http://blog.mikemccandless.com
>
> On Tue, Jul 5, 2011 at 2:12 PM, Gabriele Kahlout
> <ga...@mysimpatico.com> wrote:
> > and how do you do that? There is no reopen method
> >
> > On Tue, Jul 5, 2011 at 8:09 PM, Michael McCandless <
> > lucene@mikemccandless.com> wrote:
> >
> >> After your writer.commit you need to reopen your searcher to see the
> >> changes.
> >>
> >> Mike McCandless
> >>
> >> http://blog.mikemccandless.com
> >>
> >> On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
> >> <ga...@mysimpatico.com> wrote:
> >> > @Test
> >> > public void testUpdate() throws IOException,
> >> > ParserConfigurationException, SAXException, ParseException {
> >> > Analyzer analyzer = getAnalyzer();
> >> > QueryParser parser = new QueryParser(Version.LUCENE_32,
> content,
> >> > analyzer);
> >> > Query allQ = parser.parse("*:*");
> >> >
> >> > IndexWriter writer = getWriter();
> >> > IndexSearcher searcher = new
> >> IndexSearcher(IndexReader.open(writer,
> >> > true));
> >> > TopDocs docs = searcher.search(allQ, 10);
> >> > * assertEquals(0, docs.totalHits); // empty/no index*
> >> >
> >> > Document doc = getDoc();
> >> > writer.addDocument(doc);
> >> > writer.commit();
> >> >
> >> > docs = searcher.search(allQ, 10);
> >> > * assertEquals(1,docs.totalHits); //it fails here.
> docs.totalHits
> >> > equals 0*
> >> > }
> >> > What am I doing wrong here?
> >> >
> >> > If I initialize searcher with new IndexSearcher(directory) I'm told:
> >> > org.apache.lucene.index.IndexNotFoundException: no segments* file
> found
> >> in
> >> > org.apache.lucene.store.RAMDirectory@3caa4blockFactory
> >> =org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
> >> > files: []
> >> >
> >> > --
> >> > Regards,
> >> > K. Gabriele
> >> >
> >> > --- unchanged since 20/9/10 ---
> >> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
> >> > receipt within 48 hours then I don't resend the email.
> >> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
> >> time(x)
> >> > < Now + 48h) ⇒ ¬resend(I, this).
> >> >
> >> > If an email is sent by a sender that is not a trusted contact or the
> >> email
> >> > does not contain a valid code then the email is not received. A valid
> >> code
> >> > starts with a hyphen and ends with "X".
> >> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y
> ∈
> >> > L(-[a-z]+[0-9]X)).
> >> >
> >>
> >
> >
> >
> > --
> > Regards,
> > K. Gabriele
> >
> > --- unchanged since 20/9/10 ---
> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
> > receipt within 48 hours then I don't resend the email.
> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
> time(x)
> > < Now + 48h) ⇒ ¬resend(I, this).
> >
> > If an email is sent by a sender that is not a trusted contact or the
> email
> > does not contain a valid code then the email is not received. A valid
> code
> > starts with a hyphen and ends with "X".
> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> > L(-[a-z]+[0-9]X)).
> >
>
--
Regards,
K. Gabriele
--- unchanged since 20/9/10 ---
P.S. If the subject contains "[LON]" or the addressee acknowledges the
receipt within 48 hours then I don't resend the email.
subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
< Now + 48h) ⇒ ¬resend(I, this).
If an email is sent by a sender that is not a trusted contact or the email
does not contain a valid code then the email is not received. A valid code
starts with a hyphen and ends with "X".
∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
L(-[a-z]+[0-9]X)).
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Michael McCandless <lu...@mikemccandless.com>.
Sorry, you must reopen the underlying IndexReader, and then make a new
IndexSearcher from the reopened reader.
Mike McCandless
http://blog.mikemccandless.com
On Tue, Jul 5, 2011 at 2:12 PM, Gabriele Kahlout
<ga...@mysimpatico.com> wrote:
> and how do you do that? There is no reopen method
>
> On Tue, Jul 5, 2011 at 8:09 PM, Michael McCandless <
> lucene@mikemccandless.com> wrote:
>
>> After your writer.commit you need to reopen your searcher to see the
>> changes.
>>
>> Mike McCandless
>>
>> http://blog.mikemccandless.com
>>
>> On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
>> <ga...@mysimpatico.com> wrote:
>> > @Test
>> > public void testUpdate() throws IOException,
>> > ParserConfigurationException, SAXException, ParseException {
>> > Analyzer analyzer = getAnalyzer();
>> > QueryParser parser = new QueryParser(Version.LUCENE_32, content,
>> > analyzer);
>> > Query allQ = parser.parse("*:*");
>> >
>> > IndexWriter writer = getWriter();
>> > IndexSearcher searcher = new
>> IndexSearcher(IndexReader.open(writer,
>> > true));
>> > TopDocs docs = searcher.search(allQ, 10);
>> > * assertEquals(0, docs.totalHits); // empty/no index*
>> >
>> > Document doc = getDoc();
>> > writer.addDocument(doc);
>> > writer.commit();
>> >
>> > docs = searcher.search(allQ, 10);
>> > * assertEquals(1,docs.totalHits); //it fails here. docs.totalHits
>> > equals 0*
>> > }
>> > What am I doing wrong here?
>> >
>> > If I initialize searcher with new IndexSearcher(directory) I'm told:
>> > org.apache.lucene.index.IndexNotFoundException: no segments* file found
>> in
>> > org.apache.lucene.store.RAMDirectory@3caa4blockFactory
>> =org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
>> > files: []
>> >
>> > --
>> > Regards,
>> > K. Gabriele
>> >
>> > --- unchanged since 20/9/10 ---
>> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
>> > receipt within 48 hours then I don't resend the email.
>> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
>> time(x)
>> > < Now + 48h) ⇒ ¬resend(I, this).
>> >
>> > If an email is sent by a sender that is not a trusted contact or the
>> email
>> > does not contain a valid code then the email is not received. A valid
>> code
>> > starts with a hyphen and ends with "X".
>> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
>> > L(-[a-z]+[0-9]X)).
>> >
>>
>
>
>
> --
> Regards,
> K. Gabriele
>
> --- unchanged since 20/9/10 ---
> P.S. If the subject contains "[LON]" or the addressee acknowledges the
> receipt within 48 hours then I don't resend the email.
> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
> < Now + 48h) ⇒ ¬resend(I, this).
>
> If an email is sent by a sender that is not a trusted contact or the email
> does not contain a valid code then the email is not received. A valid code
> starts with a hyphen and ends with "X".
> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> L(-[a-z]+[0-9]X)).
>
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Gabriele Kahlout <ga...@mysimpatico.com>.
and how do you do that? There is no reopen method
On Tue, Jul 5, 2011 at 8:09 PM, Michael McCandless <
lucene@mikemccandless.com> wrote:
> After your writer.commit you need to reopen your searcher to see the
> changes.
>
> Mike McCandless
>
> http://blog.mikemccandless.com
>
> On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
> <ga...@mysimpatico.com> wrote:
> > @Test
> > public void testUpdate() throws IOException,
> > ParserConfigurationException, SAXException, ParseException {
> > Analyzer analyzer = getAnalyzer();
> > QueryParser parser = new QueryParser(Version.LUCENE_32, content,
> > analyzer);
> > Query allQ = parser.parse("*:*");
> >
> > IndexWriter writer = getWriter();
> > IndexSearcher searcher = new
> IndexSearcher(IndexReader.open(writer,
> > true));
> > TopDocs docs = searcher.search(allQ, 10);
> > * assertEquals(0, docs.totalHits); // empty/no index*
> >
> > Document doc = getDoc();
> > writer.addDocument(doc);
> > writer.commit();
> >
> > docs = searcher.search(allQ, 10);
> > * assertEquals(1,docs.totalHits); //it fails here. docs.totalHits
> > equals 0*
> > }
> > What am I doing wrong here?
> >
> > If I initialize searcher with new IndexSearcher(directory) I'm told:
> > org.apache.lucene.index.IndexNotFoundException: no segments* file found
> in
> > org.apache.lucene.store.RAMDirectory@3caa4blockFactory
> =org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
> > files: []
> >
> > --
> > Regards,
> > K. Gabriele
> >
> > --- unchanged since 20/9/10 ---
> > P.S. If the subject contains "[LON]" or the addressee acknowledges the
> > receipt within 48 hours then I don't resend the email.
> > subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧
> time(x)
> > < Now + 48h) ⇒ ¬resend(I, this).
> >
> > If an email is sent by a sender that is not a trusted contact or the
> email
> > does not contain a valid code then the email is not received. A valid
> code
> > starts with a hyphen and ends with "X".
> > ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> > L(-[a-z]+[0-9]X)).
> >
>
--
Regards,
K. Gabriele
--- unchanged since 20/9/10 ---
P.S. If the subject contains "[LON]" or the addressee acknowledges the
receipt within 48 hours then I don't resend the email.
subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
< Now + 48h) ⇒ ¬resend(I, this).
If an email is sent by a sender that is not a trusted contact or the email
does not contain a valid code then the email is not received. A valid code
starts with a hyphen and ends with "X".
∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
L(-[a-z]+[0-9]X)).
Re: Cannot I search documents added by IndexWriter after commit?
Posted by Michael McCandless <lu...@mikemccandless.com>.
After your writer.commit you need to reopen your searcher to see the changes.
Mike McCandless
http://blog.mikemccandless.com
On Tue, Jul 5, 2011 at 1:48 PM, Gabriele Kahlout
<ga...@mysimpatico.com> wrote:
> @Test
> public void testUpdate() throws IOException,
> ParserConfigurationException, SAXException, ParseException {
> Analyzer analyzer = getAnalyzer();
> QueryParser parser = new QueryParser(Version.LUCENE_32, content,
> analyzer);
> Query allQ = parser.parse("*:*");
>
> IndexWriter writer = getWriter();
> IndexSearcher searcher = new IndexSearcher(IndexReader.open(writer,
> true));
> TopDocs docs = searcher.search(allQ, 10);
> * assertEquals(0, docs.totalHits); // empty/no index*
>
> Document doc = getDoc();
> writer.addDocument(doc);
> writer.commit();
>
> docs = searcher.search(allQ, 10);
> * assertEquals(1,docs.totalHits); //it fails here. docs.totalHits
> equals 0*
> }
> What am I doing wrong here?
>
> If I initialize searcher with new IndexSearcher(directory) I'm told:
> org.apache.lucene.index.IndexNotFoundException: no segments* file found in
> org.apache.lucene.store.RAMDirectory@3caa4blockFactory=org.apache.lucene.store.SingleInstanceLockFactory@ed0220c:
> files: []
>
> --
> Regards,
> K. Gabriele
>
> --- unchanged since 20/9/10 ---
> P.S. If the subject contains "[LON]" or the addressee acknowledges the
> receipt within 48 hours then I don't resend the email.
> subject(this) ∈ L(LON*) ∨ ∃x. (x ∈ MyInbox ∧ Acknowledges(x, this) ∧ time(x)
> < Now + 48h) ⇒ ¬resend(I, this).
>
> If an email is sent by a sender that is not a trusted contact or the email
> does not contain a valid code then the email is not received. A valid code
> starts with a hyphen and ends with "X".
> ∀x. x ∈ MyInbox ⇒ from(x) ∈ MySafeSenderList ∨ (∃y. y ∈ subject(x) ∧ y ∈
> L(-[a-z]+[0-9]X)).
>