示例#1
0
    def Qsearch(self,query):
        words = seg.segment(query.strip())
        #words = self.segmentor.segment(query.strip())
        #print ' '.join(words)
        vm_env = lucene.getVMEnv()
        vm_env.attachCurrentThread()
        result = QueryParser(Version.LUCENE_CURRENT, "contents",self.analyzer)
        result.setPhraseSlop(0)
        # "\""+' '.join(words)+"\"~0" means words should be continuous
        query = result.parse("\""+' '.join(words)+"\"~0")
        totalHits = self.searcher.search(query, 50)
        #print "%s total matching documents." % totalHits.totalHits
        #return totalHits.totalHits

        for hit in totalHits.scoreDocs:
            #print"Hit Score: ",hit.score, "Hit Doc:",hit.doc, "HitString:",hit.toString()
            doc= self.searcher.doc(hit.doc)
            #print doc.get("name").encode("utf-8")
        #print "----------------------------------------"
        t = Term('contents',' '.join(words))
        #termDocs = ireader.termDocs(t)
        #for tt in termDocs:
        #       print ireader.document(termDocs.docs).getFeildable('neme'),termDocs.freq()
        #print self.reader.totalTermFreq(t)
        return self.reader.totalTermFreq(t)
示例#2
0
	def getQueryParser(self):
		
		analyzers = self.getSearchingAnalyzers()

		map = HashMap()
		map.put('name', analyzers['name'])
		map.put('parent', analyzers['parent'])
		map.put('content', analyzers['default'])
		map.put('id', analyzers['id'])
		analyzerWrapper = PerFieldAnalyzerWrapper(analyzers['default'], map)

		queryParser = QueryParser(Version.LUCENE_CURRENT, 'content', analyzerWrapper)

		queryParser.setAutoGeneratePhraseQueries(PHRASE_QUERY_BY_DEFAULT)
		queryParser.setPhraseSlop(PHRASE_SLOP)
		queryParser.setFuzzyMinSim(FUZZY_MIN_SIM)
		queryParser.setDefaultOperator(DEFAULT_OPERATOR)

		return queryParser