ensure that recoll configured with indexStripChars=1 runs as compiled with -DRCL_INDEX_STRIPCHARS
--HG-- branch : CASEDIACSENS
This commit is contained in:
@@ -79,22 +79,30 @@ class TextSplitPTR : public TextSplit {
|
||||
for (vector<vector<string> >::const_iterator vit = hdata.groups.begin();
|
||||
vit != hdata.groups.end(); vit++) {
|
||||
if (vit->size() == 1) {
|
||||
#ifdef RCL_INDEX_STRIPCHARS
|
||||
m_terms[vit->front()] = vit - hdata.groups.begin();
|
||||
#else
|
||||
string dumb = vit->front();
|
||||
unacmaybefold(vit->front(), dumb, "UTF-8", UNACOP_UNACFOLD);
|
||||
m_terms[dumb] = vit - hdata.groups.begin();
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
if (o_index_stripchars) {
|
||||
#endif
|
||||
m_terms[vit->front()] = vit - hdata.groups.begin();
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
} else {
|
||||
string dumb = vit->front();
|
||||
unacmaybefold(vit->front(), dumb, "UTF-8", UNACOP_UNACFOLD);
|
||||
m_terms[dumb] = vit - hdata.groups.begin();
|
||||
}
|
||||
#endif
|
||||
} else if (vit->size() > 1) {
|
||||
for (vector<string>::const_iterator it = vit->begin();
|
||||
it != vit->end(); it++) {
|
||||
#ifdef RCL_INDEX_STRIPCHARS
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
if (o_index_stripchars) {
|
||||
#endif
|
||||
m_gterms.insert(*it);
|
||||
#else
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
} else {
|
||||
string dumb = *it;
|
||||
unacmaybefold(*it, dumb, "UTF-8", UNACOP_UNACFOLD);
|
||||
m_gterms.insert(dumb);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,9 +320,16 @@ void ResListPager::displayPage(RclConfig *config)
|
||||
map<string, vector<string> > spellings;
|
||||
suggest(uterms, spellings);
|
||||
if (!spellings.empty()) {
|
||||
chunk <<
|
||||
trans("<p><i>Alternate spellings (accents suppressed): </i>")
|
||||
<< "<br /><blockquote>";
|
||||
if (o_index_stripchars) {
|
||||
chunk <<
|
||||
trans("<p><i>Alternate spellings (accents suppressed): </i>")
|
||||
<< "<br /><blockquote>";
|
||||
} else {
|
||||
chunk <<
|
||||
trans("<p><i>Alternate spellings: </i>")
|
||||
<< "<br /><blockquote>";
|
||||
|
||||
}
|
||||
|
||||
for (map<string, vector<string> >::const_iterator it0 =
|
||||
spellings.begin(); it0 != spellings.end(); it0++) {
|
||||
|
||||
+26
-6
@@ -116,12 +116,20 @@ static void sigcleanup(int sig)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
bool o_index_stripchars;
|
||||
#endif
|
||||
|
||||
inline bool has_prefix(const string& trm)
|
||||
{
|
||||
#ifdef RCL_INDEX_STRIPCHARS
|
||||
return trm.size() && 'A' <= trm[0] && trm[0] <= 'Z';
|
||||
#else
|
||||
return trm.size() > 0 && trm[0] == ':';
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
if (o_index_stripchars) {
|
||||
#endif
|
||||
return trm.size() && 'A' <= trm[0] && trm[0] <= 'Z';
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
} else {
|
||||
return trm.size() > 0 && trm[0] == ':';
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -201,10 +209,22 @@ int main(int argc, char **argv)
|
||||
|
||||
try {
|
||||
db = new Xapian::Database(dbdir);
|
||||
|
||||
cout << "DB: ndocs " << db->get_doccount() << " lastdocid " <<
|
||||
db->get_lastdocid() << " avglength " << db->get_avlength() << endl;
|
||||
|
||||
|
||||
#ifndef RCL_INDEX_STRIPCHARS
|
||||
// If we have terms with a leading ':' it's a new style,
|
||||
// unstripped index
|
||||
{
|
||||
Xapian::TermIterator term = db->allterms_begin(":");
|
||||
if (term == db->allterms_end())
|
||||
o_index_stripchars = true;
|
||||
else
|
||||
o_index_stripchars = false;
|
||||
cout<<"DB: terms are "<<(o_index_stripchars?"stripped":"raw")<<endl;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (op_flags & OPT_T) {
|
||||
Xapian::TermIterator term;
|
||||
string printable;
|
||||
|
||||
Reference in New Issue
Block a user