mirror of
https://github.com/kiwix/kiwix-tools.git
synced 2025-09-22 11:22:38 -04:00
commit
f46e560d7f
@ -19,7 +19,12 @@ if meson.is_cross_build() and host_machine.system() == 'windows'
|
||||
# xapian doesn't use uuid on windows.
|
||||
uuid_dep = declare_dependency()
|
||||
else
|
||||
uuid_dep = declare_dependency(link_args:['-luuid', '-lrt'])
|
||||
xapian_dep = dependency('xapian-core', required : false)
|
||||
if xapian_dep.found()
|
||||
uuid_dep = declare_dependency(link_args:['-luuid', '-lrt'])
|
||||
else
|
||||
uuid_dep = declare_dependency()
|
||||
endif
|
||||
endif
|
||||
|
||||
all_deps = [thread_dep, kiwixlib_dep, microhttpd_dep, z_dep, uuid_dep]
|
||||
|
@ -19,12 +19,11 @@
|
||||
|
||||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
#include <kiwix/xapianSearcher.h>
|
||||
|
||||
enum supportedBackend { XAPIAN };
|
||||
#include <kiwix/reader.h>
|
||||
#include <kiwix/searcher.h>
|
||||
|
||||
void usage() {
|
||||
cout << "Usage: kiwix-search [--verbose|-v] [--backend|-b=xapian] INDEX_PATH SEARCH" << endl;
|
||||
cout << "Usage: kiwix-search [--verbose|-v] ZIM_PATH SEARCH" << endl;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -33,21 +32,20 @@ int main(int argc, char **argv) {
|
||||
/* Init the variables */
|
||||
//const char *indexPath = "/home/itamar/.www.kiwix.org/kiwix/43k0i1j4.default/6d2e587b-d586-dc6a-dc6a-e4ef035a1495d15c.index";
|
||||
//const char *indexPath = "/home/itamar/testindex";
|
||||
const char *indexPath = NULL;
|
||||
const char *zimPath = NULL;
|
||||
const char *search = NULL;
|
||||
bool verboseFlag = false;
|
||||
int option_index = 0;
|
||||
int c = 0;
|
||||
supportedBackend backend = XAPIAN;
|
||||
|
||||
kiwix::Searcher *searcher = NULL;
|
||||
kiwix::Reader *reader = NULL;
|
||||
|
||||
/* Argument parsing */
|
||||
while (42) {
|
||||
|
||||
static struct option long_options[] = {
|
||||
{"verbose", no_argument, 0, 'v'},
|
||||
{"backend", required_argument, 0, 'b'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
@ -58,22 +56,15 @@ int main(int argc, char **argv) {
|
||||
case 'v':
|
||||
verboseFlag = true;
|
||||
break;
|
||||
case 'b':
|
||||
if (!strcmp(optarg, "xapian")) {
|
||||
backend = XAPIAN;
|
||||
} else {
|
||||
usage();
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (optind < argc) {
|
||||
if (indexPath == NULL) {
|
||||
indexPath = argv[optind++];
|
||||
if (zimPath == NULL) {
|
||||
zimPath = argv[optind++];
|
||||
} else if (search == NULL) {
|
||||
search = argv[optind++];
|
||||
} else {
|
||||
cout << indexPath << endl;
|
||||
cout << zimPath << endl;
|
||||
usage();
|
||||
}
|
||||
} else {
|
||||
@ -83,16 +74,17 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
/* Check if we have enough arguments */
|
||||
if (indexPath == NULL || search == NULL) {
|
||||
if (zimPath == NULL || search == NULL) {
|
||||
usage();
|
||||
}
|
||||
|
||||
/* Try to prepare the indexing */
|
||||
try {
|
||||
/* We will not get the snippets, So we do not need to pass the reader */
|
||||
searcher = new kiwix::XapianSearcher(indexPath, NULL);
|
||||
reader = new kiwix::Reader(zimPath);
|
||||
searcher = new kiwix::Searcher(reader);
|
||||
} catch (...) {
|
||||
cerr << "Unable to search through index '" << indexPath << "'." << endl;
|
||||
cerr << "Unable to search through zim '" << zimPath << "'." << endl;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -100,13 +92,14 @@ int main(int argc, char **argv) {
|
||||
if (searcher != NULL) {
|
||||
string searchString(search);
|
||||
searcher->search(searchString, 0, 10);
|
||||
Result* p_result;
|
||||
kiwix::Result* p_result;
|
||||
while ( (p_result = searcher->getNextResult()) ) {
|
||||
cout << p_result->get_title() << endl;
|
||||
delete p_result;
|
||||
}
|
||||
|
||||
delete searcher;
|
||||
delete reader;
|
||||
|
||||
// kiwix::XapianSearcher::terminate();
|
||||
} else {
|
||||
|
@ -62,7 +62,7 @@ extern "C" {
|
||||
#include <zlib.h>
|
||||
#include <kiwix/reader.h>
|
||||
#include <kiwix/manager.h>
|
||||
#include <kiwix/xapianSearcher.h>
|
||||
#include <kiwix/searcher.h>
|
||||
#include <kiwix/common/pathTools.h>
|
||||
#include <kiwix/common/regexTools.h>
|
||||
#include <kiwix/common/stringTools.h>
|
||||
@ -860,7 +860,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
if (!indexPath.empty()) {
|
||||
try {
|
||||
kiwix::Searcher *searcher = new kiwix::XapianSearcher(indexPath, reader);
|
||||
kiwix::Searcher *searcher = new kiwix::Searcher(reader);
|
||||
searcher->setProtocolPrefix("/");
|
||||
searcher->setSearchProtocolPrefix("/search?");
|
||||
searcher->setContentHumanReadableId(humanReadableId);
|
||||
|
Loading…
x
Reference in New Issue
Block a user