Recherche de phrase exacte en utilisant Lucene.net
J'ai de la difficulté à la recherche d'une expression exacte, à l'aide de Lucene.NET 2.0.0.4
Par exemple je suis la recherche pour "champ attribut définit la variable" (y compris les guillemets), mais reçoivent pas de matches, j'ai confirmé à 100% que l'expression existe.
Quelqu'un peut-il suggérer l'endroit où je vais mal? Est-ce la même prise en charge avec Lucene.NET? Comme d'habitude, la documentation de l'API n'est pas trop utile et un peu de CodeProject articles que j'ai lus ne pas toucher à 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(@"Documents0.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);
J'ai ensuite chercher une phrase à l'aide de:
//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 en texte brut.
J'ai vu cette question précédente cependant, je ne veux pas d'une recherche de proximité, juste une expression exacte de la recherche.
source d'informationauteur Ash
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas activé le terme de postes. La création de champ comme suit devrait résoudre votre problème.
Shashikant Kore est correct avec sa réponsevous devez activer les postes de durée déterminée...
Cependant, je vous recommande de ne pas stocker le texte du document dans le champ, sauf si vous avez absolument besoin de revenir à vous dans les résultats de recherche... la mise en le magasin pour le " NON " pourrait aider à réduire la taille de votre index un peu.