src/ldt/ldt/indexation/__init__.py
author ymh <ymh.work@gmail.com>
Fri, 19 Aug 2011 10:17:05 +0200
changeset 142 0b2f32965787
parent 119 07c64d93dce5
child 176 a88714473302
permissions -rw-r--r--
small corrections
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
77
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.conf import settings
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import lucene
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
lucene.initVM(lucene.CLASSPATH)
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
STORE = lucene.SimpleFSDirectory(lucene.File(settings.INDEX_PATH))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
ANALYZER = lucene.PerFieldAnalyzerWrapper(lucene.StandardAnalyzer(lucene.Version.LUCENE_CURRENT))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
ANALYZER.addAnalyzer("tags", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
ANALYZER.addAnalyzer("title", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
ANALYZER.addAnalyzer("abstract", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
ANALYZER.addAnalyzer("all", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
142
0b2f32965787 small corrections
ymh <ymh.work@gmail.com>
parents: 119
diff changeset
    13
def get_writer(new=False):
84
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    14
    lucene.getVMEnv().attachCurrentThread()
142
0b2f32965787 small corrections
ymh <ymh.work@gmail.com>
parents: 119
diff changeset
    15
    return lucene.IndexWriter(STORE, ANALYZER, new, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
77
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
95
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    17
def get_searcher():
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    18
    lucene.getVMEnv().attachCurrentThread()
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    19
    return lucene.IndexSearcher(STORE)
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    20
97
10f69a5bd9e1 correct propagation of project id on indexation
ymh <ymh.work@gmail.com>
parents: 95
diff changeset
    21
def get_query_parser(field):
95
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    22
    queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30))
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    23
    queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
8e57d39f660d correct indexation problem
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    24
    return queryParser