You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2012/02/11 18:05:03 UTC

[lucy-commits] svn commit: r1243099 - in /incubator/lucy/trunk: c/src/Lucy/Analysis/ core/Lucy/Analysis/ example-lang/src/Lucy/Analysis/ perl/ perl/xs/Lucy/Analysis/ ruby/src/Lucy/Analysis/

Author: nwellnhof
Date: Sat Feb 11 17:05:03 2012
New Revision: 1243099

URL: http://svn.apache.org/viewvc?rev=1243099&view=rev
Log:
Implement CaseFolder by means of Normalizer

This commit removes all code of CaseFolder specific to host languages and
reimplements the CaseFolder transform using a Lucy::Analysis::Normalizer for
backward compatibility.

The CaseFolder is now deprecated.

There are differences in the mapping of a few Unicode characters compared to
the old Perl implementation, so the changes are not 100% backward compatible.

Removed:
    incubator/lucy/trunk/c/src/Lucy/Analysis/CaseFolder.c
    incubator/lucy/trunk/example-lang/src/Lucy/Analysis/CaseFolder.c
    incubator/lucy/trunk/perl/xs/Lucy/Analysis/CaseFolder.c
    incubator/lucy/trunk/ruby/src/Lucy/Analysis/CaseFolder.c
Modified:
    incubator/lucy/trunk/core/Lucy/Analysis/Analyzer.cfh
    incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.c
    incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.cfh
    incubator/lucy/trunk/perl/MANIFEST

Modified: incubator/lucy/trunk/core/Lucy/Analysis/Analyzer.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Analysis/Analyzer.cfh?rev=1243099&r1=1243098&r2=1243099&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Analysis/Analyzer.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Analysis/Analyzer.cfh Sat Feb 11 17:05:03 2012
@@ -20,9 +20,9 @@ parcel Lucy;
  *
  * An Analyzer is a filter which processes text, transforming it from one form
  * into another.  For instance, an analyzer might break up a long text into
- * smaller pieces (L<RegexTokenizer|Lucy::Analysis::RegexTokenizer>), or it might
- * perform case folding to facilitate case-insensitive search
- * (L<CaseFolder|Lucy::Analysis::CaseFolder>).
+ * smaller pieces (L<RegexTokenizer|Lucy::Analysis::RegexTokenizer>), or it
+ * might perform case folding to facilitate case-insensitive search
+ * (L<Normalizer|Lucy::Analysis::Normalizer>).
  */
 abstract class Lucy::Analysis::Analyzer
     inherits Lucy::Object::Obj : dumpable {

Modified: incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.c?rev=1243099&r1=1243098&r2=1243099&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.c (original)
+++ incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.c Sat Feb 11 17:05:03 2012
@@ -18,7 +18,7 @@
 #include "Lucy/Util/ToolSet.h"
 
 #include "Lucy/Analysis/CaseFolder.h"
-#include "Lucy/Analysis/Token.h"
+#include "Lucy/Analysis/Normalizer.h"
 #include "Lucy/Analysis/Inversion.h"
 
 CaseFolder*
@@ -30,16 +30,26 @@ CaseFolder_new() {
 CaseFolder*
 CaseFolder_init(CaseFolder *self) {
     Analyzer_init((Analyzer*)self);
-    self->work_buf = BB_new(0);
+    self->normalizer = Normalizer_new(NULL, true, false);
     return self;
 }
 
 void
 CaseFolder_destroy(CaseFolder *self) {
-    DECREF(self->work_buf);
+    DECREF(self->normalizer);
     SUPER_DESTROY(self, CASEFOLDER);
 }
 
+Inversion*
+CaseFolder_transform(CaseFolder *self, Inversion *inversion) {
+    return Normalizer_Transform(self->normalizer, inversion);
+}
+
+Inversion*
+CaseFolder_transform_text(CaseFolder *self, CharBuf *text) {
+    return Normalizer_Transform_Text(self->normalizer, text);
+}
+
 bool_t
 CaseFolder_equals(CaseFolder *self, Obj *other) {
     CaseFolder *const twin = (CaseFolder*)other;

Modified: incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.cfh?rev=1243099&r1=1243098&r2=1243099&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Analysis/CaseFolder.cfh Sat Feb 11 17:05:03 2012
@@ -18,6 +18,9 @@ parcel Lucy;
 
 /** Normalize case, facilitating case-insensitive search.
  *
+ * CaseFolder is DEPRECATED. Use L<Normalizer|Lucy::Analysis::Normalizer>
+ * instead.
+ *
  * CaseFolder normalizes text according to Unicode case-folding rules, so that
  * searches will be case-insensitive.
  */
@@ -25,7 +28,7 @@ parcel Lucy;
 class Lucy::Analysis::CaseFolder
     inherits Lucy::Analysis::Analyzer : dumpable {
 
-    ByteBuf *work_buf;
+    Normalizer *normalizer;
 
     inert incremented CaseFolder*
     new();

Modified: incubator/lucy/trunk/perl/MANIFEST
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/MANIFEST?rev=1243099&r1=1243098&r2=1243099&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/MANIFEST (original)
+++ incubator/lucy/trunk/perl/MANIFEST Sat Feb 11 17:05:03 2012
@@ -401,7 +401,6 @@ t/core/528-leaf_query.t
 t/core/529-no_match_query.t
 t/core/530-series_matcher.t
 t/core/531-or_query.t
-xs/Lucy/Analysis/CaseFolder.c
 xs/Lucy/Analysis/RegexTokenizer.c
 xs/Lucy/Document/Doc.c
 xs/Lucy/Index/DocReader.c