lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From karl wettin <karl.wet...@gmail.com>
Subject Re: dash-words
Date Mon, 24 Jul 2006 14:30:19 GMT
On Mon, 2006-07-24 at 15:17 +0200, karl wettin wrote:
> On Mon, 2006-07-24 at 15:15 +0200, karl wettin wrote:
> > Yes, it effects PhraseQuery. Only "the x men are" will match.
> 
> I'm stupid. Forget about it. I should of course analyze the query too.

But still it fails on xmen. Could it have something to do with this:
   WordDelimiterFilter(ts, 1,1,0,0,0);

?

I can't figure out what the parameters does. ;)


The new code:

package org.apache.solr.analysis;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.queryParser.QueryParser;

import java.io.Reader;
import java.util.HashSet;


public class TestWordDelimiterFilter {

    public static void main(String[] args) throws Exception {
        final String field = "field";

        Directory dir = new RAMDirectory();
        Analyzer a = new Analyzer();

        IndexWriter w = new IndexWriter(dir, a, true);
        Document d = new Document();
        d.add(new Field(field, "the x-men are here", Field.Store.NO, Field.Index.TOKENIZED,
Field.TermVector.NO));
        w.addDocument(d);
        w.close();

        IndexSearcher is = new IndexSearcher(dir);
        QueryParser qp = new QueryParser(field, a);
        System.out.println(is.search(qp.parse("\"the x men are\"")).length());
        System.out.println(is.search(qp.parse("\"the xmen are\"")).length()); // expected
1, get 0.
        System.out.println(is.search(qp.parse("\"the x-men are\"")).length());


        is.close();
        dir.close();

    }

    public static class Analyzer extends org.apache.lucene.analysis.Analyzer {
        public TokenStream tokenStream(String fieldName, Reader reader) {
            TokenStream ts = new StandardAnalyzer(new HashSet()).tokenStream(fieldName, reader);
            ts = new WordDelimiterFilter(ts, 1,1,0,0,0);
            return ts;
        }
    }

}



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message