Я пытаюсь создать форму, где я могу добавить индекс, в настоящее время форма имеет 4 метки, текстовые поля и 1 кнопку. Когда я нажимаю кнопку, я хочу, чтобы индекс был создан, он создается, но всякий раз, когда я создаю новый индекс, старый перезаписывается. Как мне решить эту ошибку. Кроме того, есть ли способ, где я могу генерировать имена для документов автоматически например, вместо того, чтобы просто вар игрушки, для каждого документа я могу назвать, как toy1, toy2 и т.д ...Lucene.net переписывание при создании нового индекса
namespace luceneForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var toy = new Document();
toy.Add(new Field("Id", textBox1.Text, Field.Store.YES, Field.Index.ANALYZED));//adding a new field //Field.Store.Yes = store the field in lucene index
toy.Add(new Field("Name", textBox2.Text, Field.Store.YES, Field.Index.ANALYZED));
toy.Add(new Field("Color", textBox3.Text, Field.Store.YES, Field.Index.ANALYZED));
toy.Add(new Field("Description", textBox4.Text, Field.Store.YES, Field.Index.ANALYZED));
Directory directory = FSDirectory.Open(new DirectoryInfo(Environment.CurrentDirectory + "\\luceneFormDemo1"));
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);
//to analyze text in lucene index using the lucene 29 version
var writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.LIMITED);
//Now we need a writer to write documents to the index
writer.AddDocument(toy);
writer.Optimize();//to make it faster to search
writer.Dispose();
//----------if you run till here the folder will be created
//----------now to search through our index(we will need a reader)
MessageBox.Show("Index Saved");
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
}
}