* delete test.sqlite in storagetestsuite in desstructor * remove new and delete from suffixarray * case sensitive fts * fixed fulltext results annotated like errors * lazy suffix array building * fulltextsearch folder added * go back too branch without _publish * suffixarray working * logic: Improved code view performance
45 lines
786 B
C++
45 lines
786 B
C++
#ifndef FULLTEXTSEARCH_INDEX_H
|
|
#define FULLTEXTSEARCH_INDEX_H
|
|
|
|
#include <vector>
|
|
#include <unordered_map>
|
|
|
|
#include "data/fulltextsearch/SuffixArray.h"
|
|
#include "utility/types.h"
|
|
|
|
class StorageAccess;
|
|
|
|
// contains all fulltextsearch results of one file
|
|
struct FullTextSearchResult
|
|
{
|
|
Id fileId;
|
|
std::vector<int> positions;
|
|
};
|
|
|
|
struct FullTextSearchFile
|
|
{
|
|
FullTextSearchFile(Id fileId, SuffixArray array)
|
|
: fileId(fileId)
|
|
, array(array)
|
|
{
|
|
};
|
|
Id fileId;
|
|
SuffixArray array;
|
|
};
|
|
|
|
class FullTextSearchIndex
|
|
{
|
|
public:
|
|
void addFile(Id fileId, const std::string& file);
|
|
std::vector<FullTextSearchResult> searchForTerm(const std::string& term) const;
|
|
|
|
size_t fileCount() const;
|
|
|
|
void clear();
|
|
|
|
private:
|
|
std::vector<FullTextSearchFile> m_files;
|
|
};
|
|
|
|
#endif // FULLTEXTSEARCH_INDEX_H
|