[Xapian-devel] Add an example to the community page and contribute more code

aarsh shah aarshkshah1992 at gmail.com
Mon Jan 21 04:29:28 GMT 2013


Olly it worked !!! :) Thank you very much :) Will finish implementing  the
stemmer by tonight,am missing classes in college today.I'll implement it
externally today as you said,will incorporate it into the library once it
is completely up and running. :)

-Regards
-Aarsh

On Sun, Jan 20, 2013 at 1:10 PM, Olly Betts <olly at survex.com> wrote:

> On Mon, Jan 21, 2013 at 12:21:51AM +0530, aarsh shah wrote:
> > Hey there Olly,hope you are fine . :) I have the code for Paice Husk
> ready
> > .But I am not being able to modify the Xapian source code I have
> downloaded.
> >
> > I modified the stem.cc file so that get_description() returns a default
> > welcome string insead of calling the internal get_description() method
> > (just for fun ) .I than used make and make install again and then wrote a
> > simple indexer which called the stem.get_description() method .However,I
> > got the original string instead of the one I had modified.Why didn't the
> > change I had made get reflected ? I know this is a naive question but I
> am
> > new to open source and have never modified open source code before.Sorry
> > for taking up your time.I tried everything I could ,( even built the
> entire
> > code again) but nothing happened.
>
> It's not a naive question, though I suspect it is a common pitfall
> you've run into.
>
> If you're on a platform where Xapian is installed by default, such as
> Debian or Ubuntu, then you'll already have a copy of the xapian runtime
> shared library installed in /usr/lib (or some equivalent multiarch
> directory, such as /usr/lib/x86_64-linux-gnu).  The exact filename
> will depend on the OS and the version of Xapian, but for xapian-core 1.2
> on Linux, it's libxapian.so.22 (the 22 tells you this is ABI compatible
> with other builds which produce libxapian.so.22).
>
> If you build a version of xapian-core which produces libxapian.so.22
> (which roughly speaking means any version 1.2.x), and install this, it
> will go in /usr/local/lib by default, but the dynamic linker will look
> under /usr/lib first and find the system version.
>
> On Linux, you can see which libxapian you're getting by running "ldd" on
> a binary:
>
> $ ldd /usr/bin/xapian-compact
>         linux-vdso.so.1 =>  (0x00007fff3855e000)
>         libxapian.so.22 => /usr/lib/libxapian.so.22 (0x00007f544c029000)
> [snip]
>
> On Linux, you can set LD_LIBRARY_PATH to tell the dynamic linker where
> to look first (other platforms usually have a similar environmental
> variable, but it may have a different name):
>
> $ LD_LIBRARY_PATH=/usr/local/lib ldd /usr/bin/xapian-compact
>         linux-vdso.so.1 =>  (0x00007fffb03ff000)
>         libxapian.so.22 => /usr/local/lib/libxapian.so.22
> (0x00007f0c22fda000)
>
> None of this is specific to Xapian (except the filenames in the
> examples) - you'll hit the same issues dealing with parallel installs of
> any shared library.
>
> > The code for the paice husk stemmer is ready and Ive understood how to
> use
> > it for indexing.Ir am supposed to inherit Xapian::StemImplementation
> > ,implement the pure virtual  functions(have already done that)  and than
> > pass a reference  to the inherited object to
> > Xapian::Stem::Stem(StemImplementaion *pointer) ,right ? :)
>
> To be clear, you pass a pointer, not a reference (the two terms have
> particular meanings in C++).  Note that the Stem object you construct
> takes ownership of the pointer, so you want to create your subclass
> object with new, e.g.:
>
>     Xapian::Stem s(new StemImplementationPaiceHusk());
>
> Cheers,
>     Olly
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xapian.org/pipermail/xapian-devel/attachments/20130120/d7538760/attachment.htm>


More information about the Xapian-devel mailing list