Je ne parviens pas à la recherche d'une expression exacte à l'aide Lucene.NET 2.0.0.4recherche Phrase exacte en utilisant Lucene.net
Par exemple, je suis à la recherche de « attribut scope définit la variable » (y compris les guillemets) mais pas recevoir matches, j'ai confirmé 100% que la phrase existe. Est-ce que quelqu'un peut suggérer où je me trompe? Est-ce que cela est même supporté par Lucene.NET? Comme d'habitude, la documentation de l'API n'est pas trop utile et quelques articles de CodeProject que j'ai lus ne traitent pas spécifiquement de cela.
En utilisant le code suivant pour créer l'index:
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", true);
Analyzer analyzer = new Lucene.Net.Analysis.SimpleAnalyzer();
IndexWriter indexWriter = new Lucene.Net.Index.IndexWriter(dir, analyzer,true);
//create a document, add in a single field
Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();
Lucene.Net.Documents.Field fldContent = new Lucene.Net.Documents.Field(
"content", File.ReadAllText(@"Documents\100.txt"),
Lucene.Net.Documents.Field.Store.YES,
Lucene.Net.Documents.Field.Index.TOKENIZED);
doc.Add(fldContent);
//write the document to the index
indexWriter.AddDocument(doc);
je recherche alors une phrase en utilisant:
//state the file location of the index
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", false);
//create an index searcher that will perform the search
IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher(dir);
QueryParser qp = new QueryParser("content", new SimpleAnalyzer());
// txtSearch.Text Contains a phrase such as "this is a phrase"
Query q=qp.Parse(txtSearch.Text);
//execute the query
Lucene.Net.Search.Hits hits = searcher.Search(q);
Le document cible est d'environ 7 Mo texte brut.
J'ai vu ce previous question mais je ne veux pas une recherche de proximité, juste une recherche d'expression exacte.