Sam Millman
2011-Sep-20 14:53 UTC
[Xapian-discuss] Understanding API Documentation for PHP
Hey everyone, I am brand new to Xapian so forgive me if I am just being noob. I looked over the sparse documentation for the Xapian library and its PHP hooks and I am really confused how to complete my index. I understand how to add documents etc etc etc and how to build queries but how I do specify in add_value what field type xapian should take (i.e. tokenized, unindexed, indexed)? Is there a list of slotno's anywhere that I can reference to? In a general sense is there any more programmer orientated documentation/tutorials rather than researcher orientated document than http://xapian.org/docs/ that better describes the steps of indexing and searching etc? Thanks in advance,
Peter Van Dijk
2011-Sep-20 23:23 UTC
[Xapian-discuss] Understanding API Documentation for PHP
On 21 September 2011 00:53, Sam Millman <sam.millman at gmail.com> wrote:> I understand how to add documents etc etc etc and how to build queries but > how I do specify in add_value what field type xapian should take (i.e. > tokenized, unindexed, indexed)? >I'm not sure if i'm interpreting what you're saying correctly, but if you want to tokenize or index things, you want to look towards XapianTermGenerator::index_text instead. Values are stored against the documents and aren't directly part of the indexed text, so just set your class up with some basic constants, const VALUE_X = 0; const VALUE_Y = 1; and then pass them to add_value and get_value as required, ie. $document->add_value(self::VALUE_X, $anything); or $document->get_value(VALUE_X); In a general sense is there any more programmer orientated> documentation/tutorials rather than researcher orientated document than > http://xapian.org/docs/ that better describes the steps of indexing and > searching etc?The docs arent really researcher oriented; the overview page is a good place to start, as it describes how the api is used: http://xapian.org/docs/overview.html That being said, having recently worked on a PHP based deployment of Xapian i can tell you i struggled somewhat with the same thing. The PHP wrapper really doesn't clue you in as to what types you should be passing to any given method, so you'll find yourself having to wrap a lot of stuff with intval( ) or strval( ) for the methods to work correctly, which is a side effect of trying to use a wrapper designed for a strongly typed language with a loosely typed one. That being said, the api docs are spot on for the most part, i'd recommend cracking open xapian.php and reading it in line with http://xapian.org/docs/apidoc/html/annotated.html, given any object in the api docs just look up it's declaration in xapian.php and you should be able to figure out how to use it correctly, as all the types are correctly listed in the documentation. I'm not going to have a chance for a while, but if i get the opportunity i'd like to write some docs for using Xapian in PHP for the wiki.