src/ldt/ldt/indexation/__init__.py
author ymh <ymh.work@gmail.com>
Fri, 06 May 2011 01:37:04 +0200
changeset 97 10f69a5bd9e1
parent 95 8e57d39f660d
child 119 07c64d93dce5
permissions -rw-r--r--
correct propagation of project id on indexation
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
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
def get_writer():
84
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    14
    lucene.getVMEnv().attachCurrentThread()
77
7923feb2e362 improve indexation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    return lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
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