Note that there are some explanatory texts on larger screens.

plurals
  1. POlucene 2.9.2.2 A very strange problem, can not search for the keyword "a", the other can
    primarykey
    data
    text
    <p>add index code:</p> <pre><code>public class IndexManage { public static void AddIndex(List&lt;QuestionItem&gt; itemList) { Analyzer analyzer =new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); Lucene.Net.Store.FSDirectory fs = Lucene.Net.Store.FSDirectory.Open(new DirectoryInfo("IndexDirectory")); IndexWriter writer =new IndexWriter(fs, analyzer,true,IndexWriter.MaxFieldLength.UNLIMITED); foreach (var item in itemList) { AddDocument(writer, item); } writer.Commit(); writer.Optimize(); writer.Close(); } private static void AddDocument(IndexWriter writer, QuestionItem item) { Document document =new Document(); document.Add(new Field("qid", item.QID.ToString(), Field.Store.YES, Field.Index.ANALYZED)); document.Add(new Field("title", item.Title, Field.Store.YES,Field.Index.ANALYZED)); document.Add(new Field("content", item.Content, Field.Store.YES, Field.Index.ANALYZED)); document.Add(new Field("supply", item.Supply, Field.Store.YES, Field.Index.ANALYZED)); writer.AddDocument(document); } } </code></pre> <p>search code:</p> <pre><code>public class SearchManage { public static List&lt;QuestionItem&gt; Search(string keyword) { Analyzer analyzer =new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); Lucene.Net.Store.FSDirectory fs = Lucene.Net.Store.FSDirectory.Open(new DirectoryInfo("IndexDirectory")); IndexSearcher searcher =new IndexSearcher(fs,true); MultiFieldQueryParser parser =new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29,new string[] { "title", "content","supply" }, analyzer); parser.SetDefaultOperator(QueryParser.Operator.OR); Query query = parser.Parse(keyword); var hits = searcher.Search(query, 2500); List&lt;QuestionItem&gt; itemList =new List&lt;QuestionItem&gt;(); for (int i =0; i &lt; hits.scoreDocs.Length; i++) { var doc =searcher.Doc ( hits.scoreDocs[i].doc); itemList.Add(new QuestionItem() { QID=Int32.Parse(doc.Get("qid")), Title=doc.Get("title"), Content=doc.Get("content"), Supply=doc.Get("supply") }); } searcher.Close(); return itemList; } } </code></pre> <p>QuestionItem model is:</p> <pre><code>public class QuestionItem { public int QID { get;set; } public string Title{get;set;} public string Content { get; set; } public string Supply { get; set; } } </code></pre> <p>Test code is:</p> <pre><code>public static void Show() { AddIndex(); List&lt;QuestionItem&gt; itemList = SearchManage.Search("a"); Console.WriteLine("search result:"); foreach (var item in itemList) { Console.WriteLine(item.QID +""+ item.Title +""+ item.Content +""+ item.Supply); } } private static void AddIndex() { List&lt;QuestionItem&gt; itemList =new List&lt;QuestionItem&gt;() { new QuestionItem(){QID=1,Title="a",Content="ab",Supply="abc"}, new QuestionItem(){QID=2,Title="b",Content="a",Supply="fds a"}, new QuestionItem(){QID=3,Title="c",Content="c defg",Supply="as dfg hjk"}, new QuestionItem(){QID=4,Title="d",Content="def a b",Supply="kjhgf ds a"}, new QuestionItem(){QID=5,Title="e",Content="ef ab c",Supply="a sdf g hjkl"} }; IndexManage.AddIndex(itemList); } </code></pre> <p>now the problem is : search "a", no results, but for the "ab", "b", "c" have outcome ,a very strange problem, who can help me?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload