equal
deleted
inserted
replaced
4 from ldt.text.models import * |
4 from ldt.text.models import * |
5 import urllib |
5 import urllib |
6 import datetime |
6 import datetime |
7 import lxml.etree |
7 import lxml.etree |
8 import base64 |
8 import base64 |
|
9 import lucene |
|
10 from ldt.ldt_utils import STORE |
|
11 from ldt.ldt_utils import ANALYZER |
9 |
12 |
10 __BOOLEAN_DICT = { |
13 __BOOLEAN_DICT = { |
11 'false':False, |
14 'false':False, |
12 'true':True, |
15 'true':True, |
13 '0':False, |
16 '0':False, |
60 creationdate = lxml.etree.SubElement(meta, "created") |
63 creationdate = lxml.etree.SubElement(meta, "created") |
61 updatedate = lxml.etree.SubElement(meta, "modified") |
64 updatedate = lxml.etree.SubElement(meta, "modified") |
62 |
65 |
63 return doc |
66 return doc |
64 |
67 |
|
68 |
|
69 class LdtSearch(object): |
|
70 |
|
71 def query(self, field, query): |
|
72 indexSearcher = lucene.IndexSearcher(STORE) |
|
73 queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30)) |
|
74 queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND) |
|
75 queryObj = queryParser.parse(query) |
|
76 hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER) |
|
77 |
|
78 res = [] |
|
79 for hit in hits.scoreDocs: |
|
80 doc = indexSearcher.doc(hit.doc) |
|
81 res.append({"external_id":doc.get("external_id"),"title":doc.get("title")}) |
|
82 indexSearcher.close() |
|
83 return res |
|
84 |
|
85 def queryAll(self, query): |
|
86 return self.query("all", query) |
|
87 |
|
88 |