Make it possible to compile against various Lucene versions (hopefully!)

This commit is contained in:
alexhudson
2007-05-09 09:30:36 +00:00
parent 5a3419edac
commit 41402fced8
3 changed files with 39 additions and 51 deletions
+18
View File
@@ -38,6 +38,9 @@ for flag in $with_clucene; do
if test -e "$flag/lib/libclucene.so"; then
CLUCENE_LIBS="-L$flag/lib -lclucene"
CLUCENE_CXXFLAGS="-I$flag/include -I$config_path"
clucene_ver=$(grep _CL_VERSION $config_path/CLucene/clucene-config.h | grep -Eo [[01]].[[0-9]]+.[[0-9]]+)
echo Lucene ver: $clucene_ver
clucene_set_failed=$flag
fi
fi
@@ -62,6 +65,21 @@ else
AC_MSG_RESULT($clucene_set_failed)
fi
if test -z "$clucene_ver"; then
# optimistic guess :D
clucene_ver="1.0.0"
fi
clucene_apiver=$(echo -e "0.9.18\n$clucene_ver" | sort | head -n1)
if test "$clucene_ver" == "$clucene_apiver"; then
CLUCENE_BONGO_API=1
echo Old Lucene API - Lucene Ver: $clucene_ver
else
CLUCENE_BONGO_API=2
echo Current Lucene API - $clucene_ver
fi
AC_SUBST(CLUCENE_BONGO_API)
AC_SUBST(CLUCENE_LIBS)
AC_SUBST(CLUCENE_CXXFLAGS)
+1
View File
@@ -3,6 +3,7 @@ sbin_PROGRAMS += bongostore
bongostore_CPPFLAGS := $(AM_CPPFLAGS) \
-I$(top_srcdir)/src/agents/store \
-DCLUCENE_BONGO_API=$(CLUCENE_BONGO_API) \
$(SQLITE_CFLAGS) \
$(CLUCENE_CXXFLAGS)
+20 -51
View File
@@ -6,6 +6,8 @@ extern "C" {
#include "lucene-index.h"
#if CLUCENE_BONGO_API == 1
// pre-0.9.18 API
// Keyword analyzer
class KeywordAnalyzer : public Analyzer
@@ -56,44 +58,27 @@ KeywordTokenizer::next(Token *token)
}
token->set(ioBuffer, 0, dataLen);
return true;
#if 0
while (true) {
TCHAR c;
offset++;
if (bufferIndex >= dataLen) {
dataLen = input->read(ioBuffer, LUCENE_IO_BUFFER_SIZE);
ioBuffer[dataLen] = 0;
bufferIndex = 0;
}
if (dataLen <= 0 ) {
if (length > 0) {
break;
} else {
return false;
}
} else {
c = ioBuffer[bufferIndex++];
}
if (length == 0) {
start = offset - 1;
}
buffer[length++] = c;
if (length == LUCENE_MAX_WORD_LEN) {
break;
};
}
buffer[length] = 0;
token->set (buffer, start, start + length);
return true;
#endif
}
#endif // CLUCENE_BONGO_API == 1
QueryParser *
LuceneIndex::GetQueryParser()
{
if (queryParser) {
return queryParser;
}
queryParser = new QueryParser(_T("everything"), analyzer);
#if CLUCENE_BONGO_API == 1
queryParser->setOperator(lucene::queryParser::QueryParserBase::AND_OPERATOR);
#else
queryParser->setDefaultOperator(lucene::queryParser::QueryParserBase::AND_OPERATOR);
#endif
return queryParser;
}
LuceneIndex::LuceneIndex() : reader(NULL),
writer(NULL),
@@ -244,19 +229,3 @@ LuceneIndex::GetIndexSearcher()
return searcher;
}
QueryParser *
LuceneIndex::GetQueryParser()
{
if (queryParser) {
return queryParser;
}
queryParser = new QueryParser(_T("everything"), analyzer);
queryParser->setOperator(lucene::queryParser::QueryParserBase::AND_OPERATOR);
return queryParser;
}