示例#1
0
    def _open_index(self):
        """
        Open the index. Lucene is lame about performance with potential
        multiple writers, so qwbasically treat open/close index as a stack
        """

        if self._index is None:
            # Try to open the index for modifing. If the index doesn't exist,
            # this will fail, and we'll try again, this time letting PyLucene
            # create the directory.
            analyzer = PorterStemmerAnalyzer()
            try:
                self._index = PyLucene.IndexModifier(
                    settings.SEARCH_INDEX_PATH, analyzer, False)
            except PyLucene.JavaError, e:
                if e.getJavaException().getClass().getName(
                ) == "java.io.IOException":
                    self._index = PyLucene.IndexModifier(
                        settings.SEARCH_INDEX_PATH, analyzer, True)
                else:
                    raise
            self._index.setMaxFieldLength(
                65526)  # 64k ought to be enough for anyone...