コード例 #1
0
        //Creating Writer
        public void CreateWriter()
        {
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);

            // TODO: Enter code to create the Lucene Writer
            writer = new IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
        }
コード例 #2
0
    static void Main(string[] args)
    {
        // Path to index file.
        Directory indexDirectory = FSDirectory.Open(@"/* PASTE THE PATH WHERE YOUR INDEX WILL BE SAVED */");

        // Creating Analyzer to make index searchable.
        Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);

        // Creating IndexWriter
        IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(100000);
        IndexWriter writer             = new IndexWriter(indexDirectory, analyzer, mfl);

        // Full path to input .txt files.
        string[] filesList = System.IO.Directory.GetFiles(@"/* PASTE THE PATH TO YOUR INPUT FILE(S) */", "*.txt");

        /* INDEX FIELDS:
        ** id & body are the fields to my Lucene Index,
        ** you can change those fields accordingly to your
        ** needs
        */
        int    idNumber = 0;
        string body;

        foreach (string file in filesList)
        {
            body = System.IO.File.ReadAllText(file);
            AddToIndex(idNumber, body, writer);
            idNumber++;
        }
        writer.Dispose();
    }
コード例 #3
0
 /// <summary>
 /// Updates the index.
 /// </summary>
 /// <param name="luceneVersion">The lucene version.</param>
 /// <param name="directory">The lucene directory.</param>
 /// <param name="maxFieldLength">Maximum length of the field.</param>
 public virtual void UpdateIndex(Version luceneVersion, Directory directory, IndexWriter.MaxFieldLength maxFieldLength)
 {
     /*
      * You can override this method in your own updater to go fetch your search data and
      * update the index.
      */
 }
コード例 #4
0
ファイル: LuceneHelper.cs プロジェクト: Heinsen/IR-Project
 /// <summary>
 /// Creates the index at a given path
 /// </summary>
 /// <param name="indexPath">The pathname to create the index</param>
 private void CreateIndex(string indexPath)
 {
     _LuceneIndexDirectory = FSDirectory.Open(indexPath);
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     _IndexWriter = new IndexWriter(_LuceneIndexDirectory, _Analyzer, true, mfl);
     _IndexWriter.SetSimilarity(_Similarity);
 }
コード例 #5
0
 /// <summary>
 /// Creates the index at indexPath
 /// </summary>
 /// <param name="indexPath">Directory path to create the index</param>
 public void CreateIndex(string indexPath)
 {
     luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath);
     analyzer             = new Lucene.Net.Analysis.SimpleAnalyzer();
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
 }
コード例 #6
0
 /// <summary>
 /// Creates the index at a given path
 /// </summary>
 /// <param name="indexPath">The pathname to create the index</param>
 public void CreateIndex(string indexPath)
 {
     luceneIndexDirectory = FSDirectory.Open(indexPath);
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
     writer.SetSimilarity(newSimilarity);
 }
コード例 #7
0
        /// <summary>
        /// Updates the index.
        /// </summary>
        /// <param name="luceneVersion">The lucene version.</param>
        /// <param name="directory">The lucene directory.</param>
        /// <param name="maxFieldLength">Maximum length of the field.</param>
        /// <param name="entities"></param>
        public virtual void UpdateIndex(Version luceneVersion, Directory directory, IndexWriter.MaxFieldLength maxFieldLength,
                                        IEnumerable <TEntity> entities)
        {
            var searchDatas = entities.Select(entity => this.entityToSearchDataTypeConverter.Convert(entity)).ToList();

            this.UpdateIndex(luceneVersion, directory, maxFieldLength, searchDatas);
        }
コード例 #8
0
        public LuceneRepository(string path)
        {
            Type type = typeof(T);

            Directory          = Path.Combine(HttpRuntime.AppDomainAppPath, path, type.Name);
            DefaultFieldLength = IndexWriter.MaxFieldLength.UNLIMITED;
        }
コード例 #9
0
 /// <summary>
 /// Creates the index at indexPath
 /// </summary>
 /// <param name="indexPath">Directory path to create the index</param>
 public void CreateIndex(string indexPath)
 {
     //Done in Week 3 Practical
     luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath);
     analyzer             = new Lucene.Net.Analysis.Standard.StandardAnalyzer(VERSION);
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
 }
コード例 #10
0
        // Set path into Lucene Directory and Create a Writer
        public void SettingConfiguration(string indexPath)
        {
            indexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath);
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);

            // TODO: Enter code to create the Lucene Writer
            writer = new Lucene.Net.Index.IndexWriter(indexDirectory, analyzer, true, mfl);
        }
コード例 #11
0
 public IndexWriter MakeWriter(bool boolToPass, IndexWriter.MaxFieldLength maxLength)
 {
     if (maxLength != null)
     {
         return(new IndexWriter(_indexPath, new WhitespaceAnalyzer(), boolToPass, maxLength));
     }
     return(new IndexWriter(_indexPath, new WhitespaceAnalyzer(), boolToPass));
 }
コード例 #12
0
        public void OpenIndex(string indexPath)
        {
            /* Make sure to pass a new directory that does not exist */
            String Path = indexPath;

            luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(Path);
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
            writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
        }
コード例 #13
0
ファイル: Form1.cs プロジェクト: annguyen87/IR_Assignment
        public void CreateIndex(string indexPath)
        {
            luceneIndexDirectory = FSDirectory.Open(indexPath);
            analyzer             = new Lucene.Net.Analysis.Standard.StandardAnalyzer(VERSION);
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
            IndexDeletionPolicy        p;

            writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
        }
コード例 #14
0
        public LuceneSuggestionIndexWriter(string field, LuceneVoronDirectory directory, SnapshotDeletionPolicy snapshotter, IndexWriter.MaxFieldLength maxFieldLength, DocumentDatabase database, IState state)
        {
            _directory           = directory;
            _indexDeletionPolicy = snapshotter;
            _maxFieldLength      = maxFieldLength;
            _field  = field;
            _logger = LoggingSource.Instance.GetLogger <LuceneSuggestionIndexWriter>(database.Name);

            RecreateIndexWriter(state);
        }
コード例 #15
0
ファイル: LuceneApplication.cs プロジェクト: ly9802/IRS
        }//contructor which is used to initialize the objects

        //create index
        public void CreateIndex(string indexPath)
        {
            luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath);
            analyzerstandard     = new Lucene.Net.Analysis.Standard.StandardAnalyzer(VERSION);
            analyzerkeyword      = new Lucene.Net.Analysis.KeywordAnalyzer();
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
            analysor = new PerFieldAnalyzerWrapper(analyzerstandard);
            writer   = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analysor, true, mfl);
            writer.SetSimilarity(customSimilarity);//for task 6
        }
コード例 #16
0
ファイル: LuceneAPP.cs プロジェクト: zkf2019/IFN-647-project
 public void CreatAnalyzer_writer()
 {
     //analyzer = new SnowballAnalyzer(Lucene.Net.Util.Version.LUCENE_30, "English");
     analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     writer = new Lucene.Net.Index.IndexWriter(IndexDirectory, analyzer, true, mfl);
     writer.SetSimilarity(similarity);
     searcher            = new IndexSearcher(LuceneAPP.IndexDirectory);
     searcher.Similarity = writer.Similarity;
 }
コード例 #17
0
        private void RemoveIndexFromDirectory(Directory directory, string userId, bool isNew)
        {
            var maxFieldLength = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);

            using (var writer = new IndexWriter(directory, new StandardAnalyzer(Version.LUCENE_30), isNew, maxFieldLength))
            {
                writer.DeleteDocuments(new Term("UserId", userId));
                writer.Optimize();
            }
        }
コード例 #18
0
ファイル: RavenIndexWriter.cs プロジェクト: ybdev/ravendb
        public RavenIndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl, int maximumNumberOfWritesBeforeRecreate, IndexWriter.IndexReaderWarmer indexReaderWarmer)
        {
            directory           = d;
            analyzer            = a;
            indexDeletionPolicy = deletionPolicy;
            maxFieldLength      = mfl;
            _indexReaderWarmer  = indexReaderWarmer;
            this.maximumNumberOfWritesBeforeRecreate = maximumNumberOfWritesBeforeRecreate;

            RecreateIfNecessary();
        }
コード例 #19
0
        /// <summary>
        /// Clears the entire index.
        /// </summary>
        /// <param name="luceneVersion">The lucene version.</param>
        /// <param name="directory">The lucene directory.</param>
        /// <param name="maxFieldLength">Maximum length of the field.</param>
        public virtual void ClearIndex(Version luceneVersion, Directory directory, IndexWriter.MaxFieldLength maxFieldLength)
        {
            var analyzer = new StandardAnalyzer(luceneVersion);

            using (var indexWriter = new IndexWriter(directory, analyzer, maxFieldLength))
            {
                indexWriter.DeleteAll();

                analyzer.Close();
            }
        }
コード例 #20
0
ファイル: LuceneIndexWriter.cs プロジェクト: yitaom2/ravendb
 public LuceneIndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy,
                          IndexWriter.MaxFieldLength mfl, IndexWriter.IndexReaderWarmer indexReaderWarmer, DocumentDatabase documentDatabase, IState state)
 {
     _directory           = d;
     _analyzer            = a;
     _indexDeletionPolicy = deletionPolicy;
     _maxFieldLength      = mfl;
     _indexReaderWarmer   = indexReaderWarmer;
     _logger = LoggingSource.Instance.GetLogger <LuceneIndexWriter>(documentDatabase.Name);
     RecreateIndexWriter(state);
 }
コード例 #21
0
        /// <summary>
        /// Optimizes the Lucene index.
        /// </summary>
        /// <param name="luceneVersion">The lucene version.</param>
        /// <param name="directory">The lucene directory.</param>
        /// <param name="maxFieldLength">Maximum length of the field.</param>
        public virtual void Optimize(Version luceneVersion, Directory directory, IndexWriter.MaxFieldLength maxFieldLength)
        {
            var analyzer = new StandardAnalyzer(luceneVersion);

            using (var indexWriter = new IndexWriter(directory, analyzer, maxFieldLength))
            {
                analyzer.Close();

                indexWriter.Optimize();
            }
        }
コード例 #22
0
        /// <summary>
        /// Creates the index at indexPath
        /// </summary>
        /// <param name="indexPath">Directory path to create the index</param>
        public void CreateIndex(string indexPath)
        {
            luceneIndexDirectory       = Lucene.Net.Store.FSDirectory.Open(indexPath);
            spellCheckIndexStorage     = Lucene.Net.Store.FSDirectory.Open(indexPath + @"\spell");
            autoCompleteIndexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath + @"\autocomplete");
            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
            writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);

            //changes to Lucene score
            writer.SetSimilarity(newSimilarity);
        }
コード例 #23
0
        static void Main(string[] args)
        {
            //分析对象
            Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
            //路径对象(索引的存储位置)
            Directory directory = new RAMDirectory();//索引创建于内存

            //FSDirectory directory = FSDirectory.Open(@"C:\Users\24900\Desktop\log");//索引写入到本地
            //索引的最大字段长度
            IndexWriter.MaxFieldLength maxFieldLength = new IndexWriter.MaxFieldLength(10000);

            //写入数据到索引
            using (IndexWriter writer = new IndexWriter(directory, analyzer, maxFieldLength))
            {
                //文档对象 可以理解为一篇新闻
                Document document1 = new Document();
                //"刘备" 新闻的标题或者内容
                document1.Add(new Field("Sentence", "刘备", Field.Store.YES, Field.Index.ANALYZED));
                writer.AddDocument(document1);

                Document document2 = new Document();
                document2.Add(new Field("Sentence", "张飞", Field.Store.YES, Field.Index.ANALYZED));
                writer.AddDocument(document2);

                Document document3 = new Document();
                document3.Add(new Field("Sentence", "关羽", Field.Store.YES, Field.Index.ANALYZED));
                writer.AddDocument(document3);

                Document document4 = new Document();
                document4.Add(new Field("Sentence", "两只小蜜蜂呀飞在花丛中呀", Field.Store.YES, Field.Index.ANALYZED));
                writer.AddDocument(document4);

                writer.Optimize();
            }

            //查找 这是一条测试的提交数据注释
            using (IndexSearcher searcher = new IndexSearcher(directory))
            {
                Term    t     = new Term("Sentence", "飞");           //Sentence索引名称 飞 查询关键字
                Query   query = new TermQuery(t);                    //构建一个查询为Term
                TopDocs docs  = searcher.Search(query, null, 1000);  //执行查询
                Console.WriteLine("符合条件的查询结果有:{0}", docs.TotalHits); //查询命中总数

                //循环可以被linq替代
                for (int i = 0; i < docs.TotalHits; i++)
                {
                    Document doc = searcher.Doc(docs.ScoreDocs[i].Doc); //获取文档对象
                    Console.WriteLine(doc.Get("Sentence"));             //读取文档对象中的内容字段
                }
            }
            Console.ReadKey();
        }
コード例 #24
0
 /// <summary>
 /// Creates the index at indexPath
 /// </summary>
 /// <param name="indexPath">Directory path to create the index</param>
 public void CreateIndex(string indexPath)
 {
     try
     {
         luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(indexPath);
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.Write(ex.Message.ToString() + Environment.NewLine);
     }
     analyzer = new Lucene.Net.Analysis.SimpleAnalyzer();
     IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
     writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, analyzer, true, mfl);
 }
コード例 #25
0
ファイル: RavenIndexWriter.cs プロジェクト: mow/ravendb
        public RavenIndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl, int maximumNumberOfWritesBeforeRecreate, IndexWriter.IndexReaderWarmer indexReaderWarmer)
        {
            directory           = d;
            analyzer            = a;
            indexDeletionPolicy = deletionPolicy;
            maxFieldLength      = mfl;
            _indexReaderWarmer  = indexReaderWarmer;
            this.maximumNumberOfWritesBeforeRecreate = maximumNumberOfWritesBeforeRecreate;

            forceCommitDoc = new Document();
            forceCommitDoc.Add(forceCommitField);

            RecreateIfNecessary(force: true);
        }
コード例 #26
0
        public LuceneIndexer(Directory directory, Analyzer analyzer, int?maximumFieldLength = null)
        {
            if (maximumFieldLength.HasValue)
            {
                maxFieldLength = new IndexWriter.MaxFieldLength(maximumFieldLength.Value);
            }
            else
            {
                maxFieldLength = IndexWriter.MaxFieldLength.UNLIMITED;
            }

            LuceneIndexer.directory = directory;
            LuceneIndexer.analyzer  = analyzer;
        }
コード例 #27
0
        /// <summary>
        /// Updates the index.
        /// </summary>
        /// <param name="luceneVersion">The lucene version.</param>
        /// <param name="directory">The lucene directory.</param>
        /// <param name="maxFieldLength">Maximum length of the field.</param>
        /// <param name="searchData"></param>
        public virtual void UpdateIndex(Version luceneVersion, Directory directory, IndexWriter.MaxFieldLength maxFieldLength, IEnumerable <TSearchData> searchData)
        {
            var analyzer = new StandardAnalyzer(luceneVersion);

            using (var indexWriter = new IndexWriter(directory, analyzer, maxFieldLength))
            {
                foreach (var searchDataItem in searchData)
                {
                    this.AddEntityToIndex(searchDataItem, indexWriter);
                }

                analyzer.Close();
            }
        }
コード例 #28
0
        static void WriteIndexes()
        {
            //Note that when this site is run for the first
            //time it is necessary to create the lucene full text index
            //for searching, and it may take some time
            System.Diagnostics.Debugger.Break();
            var maxFieldLength = new IndexWriter.MaxFieldLength(int.MaxValue);

            using (var indexWriter = new IndexWriter(Index, Analyzer, maxFieldLength))
            {
                IndexVerses(indexWriter);
                IndexTafsirs(indexWriter);
                IndexHadiths(indexWriter);
                indexWriter.Commit();
            }
        }
コード例 #29
0
        public void CreateIndex(string collectionPath, string indexPath)
        {
            HashSet <string> stopWordsSet = new HashSet <string>(STOP_WORDS);

            this.indexPath      = indexPath;
            this.collectionPath = collectionPath;

            luceneIndexDirectory = Lucene.Net.Store.FSDirectory.Open(this.indexPath);

            analyzer        = new Lucene.Net.Analysis.Snowball.SnowballAnalyzer(VERSION, "English", stopWordsSet);
            shingleAnalyzer = new Lucene.Net.Analysis.Shingle.ShingleAnalyzerWrapper(analyzer, MAX_SHINGLE_SIZE);

            IndexWriter.MaxFieldLength mfl = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
            writer = new Lucene.Net.Index.IndexWriter(luceneIndexDirectory, shingleAnalyzer, true, mfl);
            writer.SetSimilarity(newSimilarity);

            IndexCollection();
        }
コード例 #30
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SearchServiceConfiguration" /> class.
        /// </summary>
        /// <param name="luceneVersion">The lucene version.</param>
        /// <param name="maxFieldLength">Maximum length of the field.</param>
        /// <param name="indexFolder">The index folder.</param>
        /// <param name="writeLockSemaphoreFileName">Name of the write lock semaphore file.</param>
        /// <param name="hitLimit">The hit limit.</param>
        public SearchServiceConfiguration(
            Version luceneVersion,
            IndexWriter.MaxFieldLength maxFieldLength,
            string indexFolder,
            string writeLockSemaphoreFileName,
            int hitLimit)
        {
            this.luceneVersion = luceneVersion.IsNull() ? Version.LUCENE_30 : luceneVersion;

            this.maxFieldLength = maxFieldLength.IsNull() ? IndexWriter.MaxFieldLength.UNLIMITED : maxFieldLength;

            this.indexFolder = indexFolder.IsNullOrEmpty() ? @"C:\SearchIndex\" : indexFolder;

            this.writeLockSemaphoreFileName = writeLockSemaphoreFileName.IsNullOrEmpty() ? Path.Combine(this.indexFolder, "write.lock") : writeLockSemaphoreFileName;

            this.hitLimit = hitLimit.Equals(EqualityComparer <int> .Default.Equals(hitLimit, default(int))) ? 1000 : hitLimit;

            this.fsDirectory = this.GetDirectory();
        }