Roy,

On Feb 27, 2004, at 12:12 PM, Roy Klein wrote:
        Document doc = new Document();
        doc.add(Field.Text("contents", "the"));

Changing these to Field.Keyword gets it to work. I'm delving a little bit to understand why, but it seems if you are adding words individually anyway you'd want them to be untokenized, right?


Erik


        doc.add(Field.Text("contents", "quick"));
        doc.add(Field.Text("contents", "brown"));
        doc.add(Field.Text("contents", "fox"));
        doc.add(Field.Text("contents", "jumped"));
        doc.add(Field.Text("contents", "over"));
        doc.add(Field.Text("contents", "the"));
        doc.add(Field.Text("contents", "lazy"));
        doc.add(Field.Text("contents", "dogs"));
        doc.add(Field.Keyword("docnumber", "1"));
        writer.addDocument(doc);
        doc = new Document();
        doc.add(Field.Text("contents", "the quick brown fox jumped over
the lazy dogs"));
        doc.add(Field.Keyword("docnumber", "2"));
        writer.addDocument(doc);
        writer.close();
    }

    public static void query(File indexDir) throws IOException
    {
        Query query = null;
        PhraseQuery pquery = new PhraseQuery();
        Hits hits = null;

        try {
            query = QueryParser.parse("quick brown", "contents", new
StandardAnalyzer());
        } catch (Exception qe) {System.out.println(qe.toString());}
        if (query == null) return;
        System.out.println("Query: " + query.toString());
        IndexReader reader = IndexReader.open(indexDir);
        IndexSearcher searcher = new IndexSearcher(reader);

        hits = searcher.search(query);
        System.out.println("Hits: " + hits.length());

        for (int i = 0; i < hits.length(); i++)
        {
            System.out.println( hits.doc(i).get("docnumber") + " ");
        }


pquery.add(new Term("contents", "quick")); pquery.add(new Term("contents", "brown")); System.out.println("PQuery: " + pquery.toString()); hits = searcher.search(pquery); System.out.println("Phrase Hits: " + hits.length()); for (int i = 0; i < hits.length(); i++) { System.out.println( hits.doc(i).get("docnumber") + " "); }

        searcher.close();
        reader.close();

    }
    public static void main(String[] args) throws Exception {
        if (args.length != 1) {
            throw new Exception("Usage: " + test.class.getName() + "
<index dir>");
        }
        File indexDir = new File(args[0]);
        test(indexDir);
        query(indexDir);
    }
}

----------------------------------------------------------------------- -
-------
My results:
Query: contents:quick contents:brown
Hits: 2
1
2
PQuery:
contents:"quick brown"
Phrase Hits: 1
2



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to