lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Taylor <paul_t...@fastmail.fm>
Subject Unable to get wildcards to work
Date Fri, 04 May 2007 08:33:09 GMT
I have indexed some records in a JTable , and I am trying to return all 
records where the value in a particular column starts with a particular 
value(http://musicbrainz.org:), but I get no matches. If I match for an 
exact values it works fine, Im stumped as to why this would be the case

//Works ok
DataIndexer.getInstance().singleTermSearch(ID3TagNames.INDEX_UFID,"http://musicbrainz.org:4d08a37a-6e71-401c-ad54-dbe5a8ae919a");
 


//No matches (last option is what I really want to do)
DataIndexer.getInstance().singleTermSearch(ID3TagNames.INDEX_UFID,"http://musicbrainz.org:4d08a37a-6e71-401c-ad54-dbe5a8ae919?");
 

DataIndexer.getInstance().singleTermSearch(ID3TagNames.INDEX_UFID,"http://musicbrainz.org:4d08a37a-6e71-401c-ad54-dbe5a8ae919*");
 

DataIndexer.getInstance().singleTermSearch(ID3TagNames.INDEX_UFID,"http://musicbrainz.org:*");
 



My Index is constructed using a KeywordAnalyser, the following line add 
a value to the index (there is one document per row)

 document.add(new Field((String) tc.getIdentifier(), columnValue, 
Field.Store.YES, Field.Index.UN_TOKENIZED));

My Search Code is:
 public List <Integer> singleTermSearch(Integer columnId,String 
searchstring)
    {
        List <Integer> matchingRows = new ArrayList<Integer>();
        try
        {
            //make a new index searcher with the in memory (RAM) index.
            IndexSearcher is = new IndexSearcher(directory);

            //Search on column columnId for value searchstring
            TermQuery query = new TermQuery(new 
Term(String.valueOf(columnId),searchstring));

            //run the search
            Hits hits = is.search(query);

            Iterator i = hits.iterator();
            while(i.hasNext())
            {
                Document doc = ((Hit)i.next()).getDocument();
                matchingRows.add(new 
Integer(doc.getField(ROW_NUMBER).stringValue()));
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return matchingRows;
    }

thanks Paul


---------------------------------------------------------------------
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