I havent used lucene. Last time i ask (many months ago, maybe a year) people suggested lucene. If i shouldnt use lucene what should i use? As am example say there are items
Edit: You can use Lucene. Here's an explanation how to do this in Lucene.net. Some Lucene basics are:
Please read this blog post about creating and using a Lucene.net index.
I assume you are tagging blog posts. If I am totally wrong, please say so. In order to search for tags, you need to represent them as Lucene entities, namely as tokens inside a "tags" field.
One way of doing so, is assigning a Lucene document per blog post. The document will have at least the following fields:
Indexing: Whenever you add a tag to a post, remove a tag or edit it, you will need to index the post. The Analyzer will transform the fields into their token representation.
Document doc = new Document();
doc.Add(new Field("id", i.ToString(), Field.Store.YES, Field.Index.NO));
doc.Add(new Field("content", text, Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("tags", tags, Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(doc);
The remaining part is retrieval. For this, you need to create a QueryParser and pass it a query string, like this:
QueryParser qp = new QueryParser();
Query q = qp.Parse(s);
Hits = Searcher.Search(q);
The syntax you need for s will be:
tags: apples tags: carrots
To search for apples or carrots
tags: carrots NOT tags: apples
See the Lucene Query Parser Syntax for details on constructing s.