//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); }
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(); }
/// <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. */ }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
public LuceneRepository(string path) { Type type = typeof(T); Directory = Path.Combine(HttpRuntime.AppDomainAppPath, path, type.Name); DefaultFieldLength = IndexWriter.MaxFieldLength.UNLIMITED; }
/// <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); }
// 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); }
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)); }
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); }
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); }
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); }
}//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 }
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; }
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(); } }
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(); }
/// <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(); } }
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); }
/// <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(); } }
/// <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); }
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(); }
/// <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); }
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); }
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; }
/// <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(); } }
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(); } }
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(); }
/// <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(); }