From 9286c7433feacafb50bb6132818f79d1b8f2aa2e Mon Sep 17 00:00:00 2001 From: amit223 Date: Tue, 1 Jan 2019 11:25:34 +0200 Subject: [PATCH] fixed results and space error in Searcher --- src/main/java/Searcher.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/Searcher.java b/src/main/java/Searcher.java index 732b0d6..4d10a41 100644 --- a/src/main/java/Searcher.java +++ b/src/main/java/Searcher.java @@ -57,7 +57,6 @@ public Searcher(double avgldl, int numOfIndexedDocs, String path, HashSet doc_tf = readTermDocs(term); - _term_docsCounter.put(term, doc_tf.size()); Iteratordocs=doc_tf.keySet().iterator(); while (docs.hasNext()) { Integer docNum = docs.next(); Integer termTfInDoc = doc_tf.get(docNum); if (_doc_termPlusTfs.containsKey(docNum)) { - _doc_termPlusTfs.get(docNum).add(new Pair(term, termTfInDoc)); //todo - future error - if not update, do put after getting copy. + _doc_termPlusTfs.get(docNum).add(new Pair(term, termTfInDoc)); } else { _doc_termPlusTfs.put(docNum, new Vector>()); - _doc_termPlusTfs.get(docNum).add(new Pair(term, termTfInDoc)); //todo - future error - if not update, do put after getting copy. + _doc_termPlusTfs.get(docNum).add(new Pair(term, termTfInDoc)); } } } @@ -187,6 +186,7 @@ else if (Character.isDigit(letter) || letter == '-') RandomAccessFile raf = new RandomAccessFile(new File(fullPath), "r"); int lineNum = dictionary.get(term).elementAt(2);//the pointer; int numOfDocs = dictionary.get(term).elementAt(0);//num of docs + _term_docsCounter.put(term,numOfDocs); for (int i = 0; i < numOfDocs; i++) { byte[] fullLine=new byte[8]; raf.seek((lineNum + i) * 8); @@ -381,6 +381,7 @@ private Vector> findEntities(byte[] line) { public Collection Search(String id, String query, boolean toTreatSemantic) { Collection docs= new Vector<>(); isSemantic=toTreatSemantic; + loadDictionaryToMemory(toStem); //using for "Entities" build_doc_termPlusTfs(query, toStem); FilterDocsByCitys(); Collection docNums = _ranker.Rank(_doc_termPlusTfs, _doc_size, _numOfIndexedDocs, _term_docsCounter, _avgldl,_path); // return only 50 most relvante @@ -433,11 +434,11 @@ private Collection docNumToNames(Collection ans,String id) { * writes to the results file the result for the query */ private void WriteToQueryFile(Map docs_rank,String id) { - File file=new File("results.txt"); + File file=new File(_toSave+"/results.txt"); try { - if(!file.exists()) - file.createNewFile(); - BufferedWriter writer=new BufferedWriter(new FileWriter(file)); + //if(!file.exists()) + // file.createNewFile(); + BufferedWriter writer=new BufferedWriter(new FileWriter(file,true)); Iterator docs=docs_rank.keySet().iterator(); while(docs.hasNext()){ String document=docs.next();