Hello James,<div><br></div><div>Thank you for your reply,</div><div>I tried using the below code.As you said it matches the partial query if i remove the * but the thing is i am not sure is this the correct way to generate the auto completion. Can u tell me how can i generate the auto completion ? Or give me an example?</div>
<div><br></div><div><div>#include <xapian.h></div><div>#include <iostream></div><div>#include <string></div><div>#include <cstdlib> // For exit().</div><div>#include <cstring></div><div><br></div>
<div>using namespace std;</div><div><br></div><div>int main(int argc, char **argv)</div><div>try {</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::WritableDatabase db("/home/example/xapian",</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>Xapian::DB_CREATE_OR_OPEN);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::TermGenerator indexer;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::Stem stemmer("english");</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>indexer.set_stemmer(stemmer);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>indexer.set_database(db);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>indexer.set_flags(indexer.FLAG_SPELLING);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>string para = "master of business administration master in c++ ";</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::Document doc;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>doc.set_data(para);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>indexer.set_document(doc);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>indexer.index_text(para);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>db.add_document(doc);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>db.commit();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::QueryParser parser;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>parser.set_database(db);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>parser.set_default_op(Xapian::Query::OP_AND);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>parser.set_stemmer(stemmer);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>parser.set_stemming_strategy(Xapian::QueryParser::STEM_SOME);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::Query query = parser.parse_query("master",</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>parser.FLAG_DEFAULT | parser.FLAG_SPELLING_CORRECTION</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>| parser.FLAG_AUTO_SYNONYMS | parser.FLAG_PARTIAL);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::Enquire enquire(db);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>enquire.set_query(query);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Xapian::MSet mset = enquire.get_mset(0, 10);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>for (Xapian::MSetIterator i = mset.begin(); i != mset.end(); i++) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>Xapian::Document doc = i.get_document();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>string data = doc.get_data();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>cout << *i << ": [" << i.get_weight() << "]\n" << data << "\n";</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>cout << flush;</div><div>}</div><div>catch (const Xapian::Error &e) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>cout << e.get_description() << endl;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>exit(1);</div><div>}</div></div><div>
<br></div><div><br><div class="gmail_quote">On Sun, Oct 7, 2012 at 10:13 PM, James Aylett <span dir="ltr"><<a href="mailto:james-xapian@tartarus.org" target="_blank">james-xapian@tartarus.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A query string such as "m*" is using the wildcard expansion operator – if you want to use the partial support, you don't want the * at the end of your query string.<br>
<br>
It's also not clear from your message whether you've set a database before trying to parse your query. You need to do this, because Xapian's wildcard support (which is what partial uses) is done at query time, expanding to all the possibly matching terms, rather than at index time in an n-gram analyzer style.<br>
<br>
If you still can't get this to work, try posting a complete program rather than just a snippet.<br>
<br>
James<br>
<div><div class="h5"><br>
<br>
On 4 Oct 2012, at 18:20, Naveen A.N. <<a href="mailto:naveen@searchlabs.org">naveen@searchlabs.org</a>> wrote:<br>
<br>
> Hello,<br>
><br>
> Do xapian has analyzer like EdgeNGram to use it for autocomplete.<br>
><br>
> I am trying to use the auto completion using xapian.<br>
> For example:<br>
> e<br>
> ex<br>
> exa<br>
> exam<br>
> example<br>
> etc..<br>
> so that we can get it.<br>
> I tried to use using the Partial flag but it dose not work Xapian::Query query = parser.parse_query("m*",parser.FLAG_PARTIAL);<br>
> Do you have any example or any tutorial is appreciated.<br>
><br>
> --Naveen.<br>
</div></div>> _______________________________________________<br>
> Xapian-devel mailing list<br>
> <a href="mailto:Xapian-devel@lists.xapian.org">Xapian-devel@lists.xapian.org</a><br>
> <a href="http://lists.xapian.org/mailman/listinfo/xapian-devel" target="_blank">http://lists.xapian.org/mailman/listinfo/xapian-devel</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
James Aylett, occasional trouble-maker<br>
<a href="http://xapian.org" target="_blank">xapian.org</a><br>
<br>
</font></span></blockquote></div><br></div>