Dear  Olly,<br> <br>               Hi,hope you are fine :) I have finished implementing the Paice Husk Stemmer and have also successfully used it along with Xapian .Thank you so so much , couldn&#39;t have done this without your help.:) Am feeling like a member of the Xapian community now :)<br>
<br>The class and the struct definition ( Rulelist structure) are in a file paicehusk.h and the function implementations are in paicehusk.cc .I can mail you the two files if you would like to see them.I now want to incorporate it in the library package  so that all members of the community can use it.Please can you help me with that as I have never done anything of that sort before(have never used git or SVN before,but will learn how to use git tonight ) .Also,I&#39;ve documented the code as well as I could but I&#39;m not sure if it meets the standards of the community.<br>
<br>I now want to work on Eset but will talk about that after I incorporate PaiceHusk in the library.Will upload a couple of examples Ive written for the community page tomorrow.<br><br>Thank you once again. :)<br><br>-Regards<br>
-Aarsh<br><br><br><div class="gmail_quote">On Sun, Jan 20, 2013 at 1:10 PM, Olly Betts <span dir="ltr">&lt;<a href="mailto:olly@survex.com" target="_blank">olly@survex.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Mon, Jan 21, 2013 at 12:21:51AM +0530, aarsh shah wrote:<br>
&gt; Hey there Olly,hope you are fine . :) I have the code for Paice Husk ready<br>
&gt; .But I am not being able to modify the Xapian source code I have downloaded.<br>
&gt;<br>
&gt; I modified the stem.cc file so that get_description() returns a default<br>
&gt; welcome string insead of calling the internal get_description() method<br>
&gt; (just for fun ) .I than used make and make install again and then wrote a<br>
&gt; simple indexer which called the stem.get_description() method .However,I<br>
&gt; got the original string instead of the one I had modified.Why didn&#39;t the<br>
&gt; change I had made get reflected ? I know this is a naive question but I am<br>
&gt; new to open source and have never modified open source code before.Sorry<br>
&gt; for taking up your time.I tried everything I could ,( even built the entire<br>
&gt; code again) but nothing happened.<br>
<br>
</div>It&#39;s not a naive question, though I suspect it is a common pitfall<br>
you&#39;ve run into.<br>
<br>
If you&#39;re on a platform where Xapian is installed by default, such as<br>
Debian or Ubuntu, then you&#39;ll already have a copy of the xapian runtime<br>
shared library installed in /usr/lib (or some equivalent multiarch<br>
directory, such as /usr/lib/x86_64-linux-gnu).  The exact filename<br>
will depend on the OS and the version of Xapian, but for xapian-core 1.2<br>
on Linux, it&#39;s libxapian.so.22 (the 22 tells you this is ABI compatible<br>
with other builds which produce libxapian.so.22).<br>
<br>
If you build a version of xapian-core which produces libxapian.so.22<br>
(which roughly speaking means any version 1.2.x), and install this, it<br>
will go in /usr/local/lib by default, but the dynamic linker will look<br>
under /usr/lib first and find the system version.<br>
<br>
On Linux, you can see which libxapian you&#39;re getting by running &quot;ldd&quot; on<br>
a binary:<br>
<br>
$ ldd /usr/bin/xapian-compact<br>
        linux-vdso.so.1 =&gt;  (0x00007fff3855e000)<br>
        libxapian.so.22 =&gt; /usr/lib/libxapian.so.22 (0x00007f544c029000)<br>
[snip]<br>
<br>
On Linux, you can set LD_LIBRARY_PATH to tell the dynamic linker where<br>
to look first (other platforms usually have a similar environmental<br>
variable, but it may have a different name):<br>
<br>
$ LD_LIBRARY_PATH=/usr/local/lib ldd /usr/bin/xapian-compact<br>
        linux-vdso.so.1 =&gt;  (0x00007fffb03ff000)<br>
        libxapian.so.22 =&gt; /usr/local/lib/libxapian.so.22 (0x00007f0c22fda000)<br>
<br>
None of this is specific to Xapian (except the filenames in the<br>
examples) - you&#39;ll hit the same issues dealing with parallel installs of<br>
any shared library.<br>
<div class="im"><br>
&gt; The code for the paice husk stemmer is ready and Ive understood how to use<br>
</div>&gt; it for indexing.Ir am supposed to inherit Xapian::StemImplementation<br>
<div class="im">&gt; ,implement the pure virtual  functions(have already done that)  and than<br>
&gt; pass a reference  to the inherited object to<br>
&gt; Xapian::Stem::Stem(StemImplementaion *pointer) ,right ? :)<br>
<br>
</div>To be clear, you pass a pointer, not a reference (the two terms have<br>
particular meanings in C++).  Note that the Stem object you construct<br>
takes ownership of the pointer, so you want to create your subclass<br>
object with new, e.g.:<br>
<br>
    Xapian::Stem s(new StemImplementationPaiceHusk());<br>
<br>
Cheers,<br>
    Olly<br>
</blockquote></div><br>