Exemplo n.º 1
0
        private void AddToLuceneIndex(ISearchEntry searchEntry, IndexWriter writer)
        {
            // remove older index entry
            TermQuery searchQuery = new TermQuery(new Term(searchEntry.Key.FieldName, searchEntry.Key.FieldValue));

            writer.DeleteDocuments(searchQuery);

            // add new index entry
            Document indexDocument = this.BuildIndexDocument(searchEntry);

            writer.AddDocument(indexDocument);
        }
Exemplo n.º 2
0
        //private static string _luceneDir = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "lucene_index");
        //private static FSDirectory _directoryTemp;
        //private static FSDirectory _directory
        //{
        //    get
        //    {
        //        if (_directoryTemp == null)
        //        {
        //            _directoryTemp = FSDirectory.Open(new DirectoryInfo(_luceneDir));
        //        }

        //        if (IndexWriter.IsLocked(_directoryTemp))
        //        {
        //            IndexWriter.Unlock(_directoryTemp);
        //        }

        //        var lockFilePath = Path.Combine(_luceneDir, "write.lock");
        //        if (File.Exists(lockFilePath))
        //        {
        //            File.Delete(lockFilePath);
        //        }

        //        return _directoryTemp;
        //    }
        //}

        private Document BuildIndexDocument(ISearchEntry searchEntry)
        {
            Document indexDocument = new Document();

            indexDocument.Add(new Field(searchEntry.Key.FieldName, searchEntry.Key.FieldValue, Field.Store.YES, Field.Index.NOT_ANALYZED));

            foreach (IndexField field in searchEntry.SearchFieldsData)
            {
                indexDocument.Add(
                    new Field(
                        field.FieldName,
                        field.FieldValue,
                        field.Store ? Field.Store.YES : Field.Store.NO,
                        field.Analyze ? Field.Index.ANALYZED : Field.Index.NOT_ANALYZED));
            }

            return(indexDocument);
        }
Exemplo n.º 3
0
 public void AddUpdateLuceneIndex(ISearchEntry searchEntry)
 {
     this.AddUpdateLuceneIndex(new ISearchEntry[1] {
         searchEntry
     });
 }