Only in Search-Xapian-1.0.4.0/: typemap~ diff -ur Search-plain/Xapian/QueryParser.pm Search-Xapian-1.0.4.0/Xapian/QueryParser.pm --- Search-plain/Xapian/QueryParser.pm 2007-12-16 23:46:34.000000000 -0700 +++ Search-Xapian-1.0.4.0/Xapian/QueryParser.pm 2007-12-16 13:23:36.000000000 -0700 @@ -101,7 +101,7 @@ searching behaviour: FLAG_BOOLEAN, FLAG_PHRASE, FLAG_LOVEHATE, FLAG_BOOLEAN_ANY_CASE, - FLAG_WILDCARD, FLAG_PURE_NOT, FLAG_PARTIAL + FLAG_WILDCARD, FLAG_PURE_NOT, FLAG_PARTIAL, FLAG_SYNONYM To specify multiple flags, "or" them together (with C<|>). The default flags are C diff -ur Search-plain/Xapian.pm Search-Xapian-1.0.4.0/Xapian.pm --- Search-plain/Xapian.pm 2007-12-16 23:46:34.000000000 -0700 +++ Search-Xapian-1.0.4.0/Xapian.pm 2007-12-16 13:23:35.000000000 -0700 @@ -74,6 +74,8 @@ FLAG_WILDCARD FLAG_PURE_NOT FLAG_PARTIAL + FLAG_SYNONYM + FLAG_AUTO_SYNONYMS ) ], 'qpstem' => [ qw( STEM_NONE diff -ur Search-plain/Xapian.xs Search-Xapian-1.0.4.0/Xapian.xs --- Search-plain/Xapian.xs 2007-12-16 23:46:34.000000000 -0700 +++ Search-Xapian-1.0.4.0/Xapian.xs 2007-12-16 23:37:56.000000000 -0700 @@ -173,7 +392,12 @@ ENUM_CONST(FLAG_WILDCARD, QueryParser::FLAG_WILDCARD); ENUM_CONST(FLAG_PURE_NOT, QueryParser::FLAG_PURE_NOT); ENUM_CONST(FLAG_PARTIAL, QueryParser::FLAG_PARTIAL); - + ENUM_CONST(FLAG_SPELLING_CORRECTION, QueryParser::FLAG_SPELLING_CORRECTION); + ENUM_CONST(FLAG_SYNONYM, QueryParser::FLAG_SYNONYM); + ENUM_CONST(FLAG_AUTO_SYNONYMS, QueryParser::FLAG_AUTO_SYNONYMS); + ENUM_CONST(FLAG_AUTO_MULTIWORD_SYNONYMS, QueryParser::FLAG_AUTO_SYNONYMS); + + ENUM_CONST(FLAG_SPELLING, TermGenerator::FLAG_SPELLING); ENUM_CONST(STEM_NONE, QueryParser::STEM_NONE); ENUM_CONST(STEM_SOME, QueryParser::STEM_SOME); ENUM_CONST(STEM_ALL, QueryParser::STEM_ALL); diff -ur Search-plain/XS/TermGenerator.xs Search-Xapian-1.0.4.0/XS/TermGenerator.xs --- Search-plain/XS/TermGenerator.xs 2007-12-16 23:46:34.000000000 -0700 +++ Search-Xapian-1.0.4.0/XS/TermGenerator.xs 2007-12-16 23:37:54.000000000 -0700 @@ -43,6 +43,18 @@ string prefix void +TermGenerator::set_flags(toggle) + int toggle + CODE: + TermGenerator::flags f; + if(toggle == TermGenerator::FLAG_SPELLING) { + f = TermGenerator::FLAG_SPELLING; + } + THIS->set_flags(f); + + + +void TermGenerator::index_text_without_positions(text, weight = 1, prefix = "") string text termcount weight Only in Search-Xapian-1.0.4.0/XS: TermGenerator.xs~ diff -ur Search-plain/XS/WritableDatabase.xs Search-Xapian-1.0.4.0/XS/WritableDatabase.xs --- Search-plain/XS/WritableDatabase.xs 2007-12-16 23:46:34.000000000 -0700 +++ Search-Xapian-1.0.4.0/XS/WritableDatabase.xs 2007-12-16 13:23:36.000000000 -0700 @@ -388,3 +388,32 @@ void WritableDatabase::DESTROY() + +void +WritableDatabase::add_synonym(string term, string synonym) + CODE: + try { + THIS->add_synonym(term, synonym); + } catch (const Error &error) { + croak( "Exception: %s", error.get_msg().c_str() ); + } + +void +WritableDatabase::remove_synonym(string term, string synonym) + CODE: + try { + THIS->remove_synonym(term, synonym); + } catch (const Error &error) { + croak( "Exception: %s", error.get_msg().c_str() ); + } + +void +WritableDatabase::clear_synonyms(string term) + CODE: + try { + THIS->clear_synonyms(term); + } catch (const Error &error) { + croak( "Exception: %s", error.get_msg().c_str() ); + } + +