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

aarsh shah aarshkshah1992 at gmail.com
Thu Jan 24 16:37:28 GMT 2013


Hey Olly,sorry for sending too many mails.I was just a bit to excited as I
had written my first piece of code for Xapian.It wont happen again.Thanks
for all the help you've given me.Ill figure out a way of integrating the
stemmer with the library.Will contact you once that is over and Ive sent a
pull request on github.Sorry again.

-Yours Sincerely
Aarsh

On Mon, Jan 21, 2013 at 2:40 AM, 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/20130124/1f4cf2b7/attachment.htm>


More information about the Xapian-devel mailing list