From a4ce5b6a4a39383c86d89119c8db2a739cf3ac83 Mon Sep 17 00:00:00 2001 From: Nicholas Yang <parablank@gmail.com> Date: Thu, 29 Mar 2018 18:15:05 -0400 Subject: [PATCH] isr word test working again --- ISRWord-tests | Bin 342260 -> 351748 bytes constraintSolver/ISREndDoc.cpp | 50 ++---------------------- constraintSolver/ISREndDoc.h | 1 + constraintSolver/ISRWord.cpp | 40 +++++++++---------- constraintSolver/tests/ISRWordTests.cpp | 31 +++++++-------- 5 files changed, 39 insertions(+), 83 deletions(-) diff --git a/ISRWord-tests b/ISRWord-tests index a93ea99fd1e8eea9c8df5e1cf848004b12be35f9..f3264270a64f0b43b493525fe8c93e8639cb51ea 100755 GIT binary patch delta 49867 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 BVgUdE delta 44168 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 diff --git a/constraintSolver/ISREndDoc.cpp b/constraintSolver/ISREndDoc.cpp index 3789655..aa986df 100644 --- a/constraintSolver/ISREndDoc.cpp +++ b/constraintSolver/ISREndDoc.cpp @@ -11,11 +11,11 @@ ISREndDoc::ISREndDoc() { DocumentEnding ISREndDoc::next() { if(memMap == nullptr) { - string fileName = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/index" + to_string(currentChunk) + ".txt"; + string fileName = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/" + to_string(currentChunk) + ".txt"; currentFile = open(fileName.c_str(), O_RDONLY); - vector<size_t> contents = getSeekContents(); + MMDiskHashTable de(util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/" + to_string(currentChunk) + "-seek.txt", 30, 8); memMap = (char*) mmap(nullptr, util::FileSize(currentFile), PROT_READ, MAP_PRIVATE, currentFile, 0); - memMap += contents[0]; + memMap += stoll(de.find("=docEnding")); } string currentOne; for(char* map = memMap; map < memMap + util::FileSize(currentFile); map++) { @@ -24,7 +24,7 @@ DocumentEnding ISREndDoc::next() { memMap = nullptr; return DocumentEnding(); } - if(currentChunk == 8) { + if(currentChunk == 5) { DocumentEnding a = DocumentEnding(); a.url = "aaa"; return a; @@ -64,45 +64,3 @@ DocumentEnding ISREndDoc::next() { DocumentEnding ISREndDoc::getCurrentDoc() { return currentDoc; } - -vector<size_t> ISREndDoc::getSeekContents() { - string fileName = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/index" + to_string(currentChunk) + "-seek.txt"; - int file = open(fileName.c_str(), O_RDONLY); - ssize_t fileSize = util::FileSize(file); - vector<size_t> contents; - - - char* memMap = (char*) mmap(nullptr, fileSize, PROT_READ, MAP_PRIVATE, file, 0); - // char* memMap = util::getFileMap(fileName); - string word = ""; - bool midWord = false; - bool midFind = false; - if(memMap != MAP_FAILED) { - for(char* map = memMap; map < memMap + fileSize; map++) { - if(midFind && isalpha(*map)) { - break; - } - switch(*map) { - case '\n': - case '\r': - case '\t': - case ' ': - if (midFind && word != "") { - contents.push_back(stoll(word)); - word = ""; - } else if (midWord) { - midWord = false; - if(word == "=docEnding") { - midFind = true; - } - word = ""; - } - break; - default: - word += *map; - midWord = true; - } - } - } - return contents; -} \ No newline at end of file diff --git a/constraintSolver/ISREndDoc.h b/constraintSolver/ISREndDoc.h index bea1627..0d722df 100644 --- a/constraintSolver/ISREndDoc.h +++ b/constraintSolver/ISREndDoc.h @@ -17,6 +17,7 @@ #include "WordSeek.h" #include "../util/util.h" #include "../indexer/DocumentEnding.h" +#include "../DataStructures/DiskHashTable/MMDiskHashTable.h" // Find occurrences of document ends. diff --git a/constraintSolver/ISRWord.cpp b/constraintSolver/ISRWord.cpp index ee15492..7a68191 100644 --- a/constraintSolver/ISRWord.cpp +++ b/constraintSolver/ISRWord.cpp @@ -141,26 +141,26 @@ void ISRWord::getWordSeek() { //if so, set location to that big chunk //go to next chunk Location ISRWord::Seek( Location target ) { -// if(!wordSeekLookupTable.empty()) { -// auto best = wordSeekLookupTable.front(); -// for(auto entry : wordSeekLookupTable) { -// if(entry.realLocation < target) { -// best = entry; -// } else { -// string currentChunkFileLocation = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/index" + to_string(listOfChunks[currentChunk]) + ".txt"; -// int currentChunkFile = open(currentChunkFileLocation.c_str(), O_RDONLY); -// ssize_t currentChunkFileSize = FileSize(currentChunkFile); -// currentMemMap = (char*) mmap(nullptr, currentChunkFileSize, PROT_READ, MAP_PRIVATE, currentChunkFile, 0); -// currentMemMap += best.seekOffset; -// currentLocation = best.realLocation; -// return best.realLocation; -// } -// } -// } else { -// while(Next() <= target) { -// } -// return currentLocation; -// } + if(!wordSeekLookupTable.empty()) { + auto best = wordSeekLookupTable.front(); + for(auto entry : wordSeekLookupTable) { + if(entry.realLocation < target) { + best = entry; + } else { + string currentChunkFileLocation = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/" + to_string(listOfChunks[currentChunk]) + ".txt"; + int currentChunkFile = open(currentChunkFileLocation.c_str(), O_RDONLY); + ssize_t currentChunkFileSize = FileSize(currentChunkFile); + currentMemMap = (char*) mmap(nullptr, currentChunkFileSize, PROT_READ, MAP_PRIVATE, currentChunkFile, 0); + currentMemMap += best.seekOffset; + currentLocation = best.realLocation; + return best.realLocation; + } + } + } else { + while(Next() <= target) { + } + return currentLocation; + } } diff --git a/constraintSolver/tests/ISRWordTests.cpp b/constraintSolver/tests/ISRWordTests.cpp index fb8deb8..38628d2 100644 --- a/constraintSolver/tests/ISRWordTests.cpp +++ b/constraintSolver/tests/ISRWordTests.cpp @@ -14,7 +14,7 @@ using namespace std; int main ( ) { char* query = "iphone"; - ISRWord queryWord("fsfasfas"); + ISRWord queryWord("nike"); ISREndDoc endDocs; vector<size_t> locations; vector<DocumentEnding> docEnds; @@ -23,22 +23,19 @@ int main ( ) while(queryWord.getCurrentLocation() != MAX_Location) { locations.push_back(queryWord.Next()); } - for(auto loc : locations) { - cout << loc << endl; + while(endDocs.next().url != "aaa") + { + for(auto locs : locations) + { + if(locs < endDocs.getCurrentDoc().docEndPosition && + locs >= (endDocs.getCurrentDoc().docEndPosition - endDocs.getCurrentDoc().docNumWords)) { + urls.insert(endDocs.getCurrentDoc().url); + } + } + + } + for(auto urrl : urls) { + cout << urrl << endl; } -// while(endDocs.next().url != "aaa") -// { -// for(auto locs : locations) -// { -// if(locs < endDocs.getCurrentDoc().docEndPosition && -// locs >= (endDocs.getCurrentDoc().docEndPosition - endDocs.getCurrentDoc().docNumWords)) { -// urls.insert(endDocs.getCurrentDoc().url); -// } -// } -// -// } -// for(auto urrl : urls) { -// cout << urrl << endl; -// } return 0; } \ No newline at end of file -- GitLab