ranges: lowercase as needed when indexing

This commit is contained in:
Jean-Francois Dockes 2018-01-24 15:58:50 +01:00
parent 595e419d93
commit 8b60cffa65

View File

@ -23,6 +23,7 @@
#include "rclconfig.h" #include "rclconfig.h"
#include "smallut.h" #include "smallut.h"
#include "log.h" #include "log.h"
#include "unacpp.h"
using namespace std; using namespace std;
@ -31,13 +32,22 @@ namespace Rcl {
void add_field_value(Xapian::Document& xdoc, const FieldTraits& ft, void add_field_value(Xapian::Document& xdoc, const FieldTraits& ft,
const string& data) const string& data)
{ {
string ndata{data}; string ndata;
switch (ft.valuetype) { switch (ft.valuetype) {
case FieldTraits::STR: case FieldTraits::STR:
if (o_index_stripchars) {
if (!unacmaybefold(data, ndata, "UTF-8", UNACOP_UNACFOLD)) {
LOGDEB("Rcl::add_field_value: unac failed for ["<<data<< "]\n");
ndata = data;
}
} else {
ndata = data;
}
break; break;
case FieldTraits::INT: case FieldTraits::INT:
{ {
ndata = data;
int len = ft.valuelen ? ft.valuelen : 10; int len = ft.valuelen ? ft.valuelen : 10;
leftzeropad(ndata, len); leftzeropad(ndata, len);
} }