How do you map a query for fieldx to fieldy

View: New views
2 Messages — Rating Filter:   Alert me  

How do you map a query for fieldx to fieldy

by Paul Taylor-9 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

For backwards compatabiity I have to change queries for the track field
to the recording field. I did this by overriding  QueryParser.newQuery()
as follows

protected Query newTermQuery(Term term) {
        if ( term.field() == "track" ) {
            return super.newTermQuery(new Term("recording"term.text()));
        }
        else {
            return super.newTermQuery(term);
        }
    }

this seemed to work, but then I realised it didnt work for phrasequeries
so I have to override QueryParser.newPhraseQuery() but now thinking will
fail for wilcard queries ectera. Is there just one method I can override
to deal with this.


Paul

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


Re: How do you map a query for fieldx to fieldy

by Paul Taylor-9 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Paul Taylor wrote:

> For backwards compatabiity I have to change queries for the track
> field to the recording field. I did this by overriding  
> QueryParser.newQuery() as follows
>
> protected Query newTermQuery(Term term) {
>        if ( term.field() == "track" ) {
>            return super.newTermQuery(new Term("recording"term.text()));
>        }
>        else {
>            return super.newTermQuery(term);
>        }
>    }
>
> this seemed to work, but then I realised it didnt work for
> phrasequeries so I have to override QueryParser.newPhraseQuery() but
> now thinking will fail for wilcard queries ectera. Is there just one
> method I can override to deal with this.

FYI, did this instead and seems to work

protected Query getFieldQuery(String field, String queryText)  throws
ParseException {
        if( field.equals("track") {
            field=RecordingIndexField.RECORDING.getName();
        }
        return super.getFieldQuery(field,queryText);
}

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