예제 #1
0
    public IEnumerable <DataFileRow> Search(string searchTerm)
    {
        IndexSearcher searcher = new IndexSearcher(luceneIndexDirectory);
        QueryParser   parser   = new QueryParser("LineText", analyzer);

        Query query     = parser.Parse(searchTerm);
        Hits  hitsFound = searcher.Search(query);

        List <DataFileRow> results           = new List <DataFileRow>();
        DataFileRow        sampleDataFileRow = null;

        for (int i = 0; i < hitsFound.Length(); i++)
        {
            sampleDataFileRow = new DataFileRow();
            Document doc = hitsFound.Doc(i);
            sampleDataFileRow.LineNumber = int.Parse(doc.Get("LineNumber"));
            sampleDataFileRow.LineText   = doc.Get("LineText");
            float score = hitsFound.Score(i);
            sampleDataFileRow.Score = score;

            results.Add(sampleDataFileRow);
        }
        luceneIndexDirectory.Close();
        searcher.Close();
        return(results.OrderByDescending(x => x.Score).ToList());
    }
예제 #2
0
        public void TestDataFileRowFromArrayToString()
        {
            DataFileRow dfr = new DataFileRow(new int[] { 20, 20, 8, 8, 8, 19 });

            string[] array = { "OS/2", "DB2", "130", "22", "3343", "01.10.2007 11:57:00" };
            string   row   = dfr.fromArrayToString(array);

            Assert.AreEqual("                OS/2                 DB2     130      22    334301.10.2007 11:57:00", row);
        }
예제 #3
0
        public void TestDataFileRowFromStringToArray()
        {
            DataFileRow dfr = new DataFileRow(new int[] { 20, 20, 8, 8, 8, 19 });
            string      row = "                OS/2                 DB2     130      22    334301.10.2007 11:57:00";

            string[] array = dfr.fromStringToArray(row);
            Assert.AreEqual("OS/2", array[0]);
            Assert.AreEqual("DB2", array[1]);
            Assert.AreEqual("130", array[2]);
            Assert.AreEqual("22", array[3]);
            Assert.AreEqual("3343", array[4]);
            Assert.AreEqual("01.10.2007 11:57:00", array[5]);
        }