Actually I am pretty sure that it is using Snowball for indexing too since the results of the indexing in Luke do not include "nuts": cheney is a nut i hate nut
Galactikuh wrote: > > Hi, Well I believe I did, but I am not positive. The code I use to set it > up is below. Actually I'm not even really sure how to specify which > analyzer to use for indexing using Hibernate Search. This may be a > question for their forum. > > Thanks, > K > > Patrick Turcotte-2 wrote: >> >> Hi, >> >> Did you use the same snowball analyzer to create your index? Remember >> that you usually need to use the same analyzer for indexing and >> searching. >> >> Patrick >> >> On 9/21/07, Galactikuh <[EMAIL PROTECTED]> wrote: >>> >>> Hi, >>> After doing some more analysis with Luke it does seem like that it is >>> something about that Analyzer, not my code, since I get the same results >>> in >>> there. >>> >>> K >>> >>> Erick Erickson wrote: >>> > >>> > Have you gotten a copy of Luke and examined your index >>> > to see if what's in there is actually what you think? I've found >>> > it invaluable (see the Lucene pages). >>> > >>> > Also, query.toString() is your friend. It'll show you what the >>> > actual query looks like after parsing. >>> > >>> > You could also, as a test, construct a BooleanQuery >>> > with the term "nut" and see what comes back.... >>> > >>> > Is it possible that UseStemmer is being set to false somehow >>> > for the query parser (perhaps in code you didn't post?). That >>> > would account for it... >>> > >>> > Best >>> > Erick >>> > >>> > On 9/21/07, Galactikuh <[EMAIL PROTECTED]> wrote: >>> >> >>> >> >>> >> I am using SnowballAnalyzer with Hibernate search. I am using it to >>> >> search >>> >> phrases in a database. It only seems to return the stemmed version of >>> any >>> >> query. So for example, I have two phrases in the DB: >>> >> >>> >> "Cheney is a nut" >>> >> and >>> >> "I hate nuts" >>> >> >>> >> When I do a search for either "nut" or "nuts" it only returns "Cheney >>> is >>> >> a >>> >> nut" >>> >> >>> >> This is what seems to be inside my index file: >>> >> >>> >> 'cheney' 'hate' 'i' 'nut' 's' >>> >> >>> >> Here is the code, although it's hibernate so not sure if it's >>> relevant or >>> >> will mean anything to anyone here. >>> >> >>> >> Thanks, >>> >> Kshanti >>> >> >>> >> import javax.persistence.EntityManager; >>> >> >>> >> import org.apache.lucene.analysis.snowball.SnowballAnalyzer; >>> >> import org.apache.lucene.analysis.standard.StandardAnalyzer; >>> >> import org.apache.lucene.queryParser.QueryParser; >>> >> import org.hibernate.*; >>> >> >>> >> public class LuceneSearch >>> >> { >>> >> >>> >> public enum Similarity >>> >> { >>> >> KEYWORDS, >>> >> HIGH, >>> >> EXPAND, >>> >> EXACT, >>> >> >>> >> } >>> >> >>> >> public static final String TEXT_FIELD = "TEXT"; >>> >> >>> >> private static final String HIBERNATE_FILE = >>> >> "META-INF/persistence.xml"; >>> >> >>> >> private QueryParser _parser; >>> >> >>> >> private String[] _stopWords; >>> >> >>> >> private FullTextSession _textSession; >>> >> >>> >> private EntityManager _entityManager; >>> >> >>> >> private Similarity _defaultSimilarity=Similarity.KEYWORDS; >>> >> >>> >> private boolean _beenIndexed=false; >>> >> >>> >> public static boolean UseStemmer=true; >>> >> >>> >> public LuceneSearch(EntityManager entityMgr) >>> >> { >>> >> if (null == entityMgr) >>> >> throw new IllegalArgumentException("entityMgr must not be >>> >> null."); >>> >> >>> >> _entityManager = entityMgr; >>> >> // Have to use sessions here >>> >> try >>> >> { >>> >> Session session = (Session) _entityManager.getDelegate(); >>> >> _textSession = Search.createFullTextSession(session); >>> >> initialize(null); >>> >> } >>> >> catch (ClassCastException ce) >>> >> { >>> >> // this error supposedly should not get thrown as >>> getDelegate() >>> >> // supposedly always returns a Session, but just in case. >>> >> // (this was from examples on the web and the #hibernate >>> channel >>> >> so >>> >> // needs to be verified >>> >> ce.printStackTrace(); >>> >> // TODO: Wrap it up and do something else with it >>> >> throw ce; >>> >> } >>> >> } >>> >> >>> >> private void initialize(String[] stopWords) >>> >> { >>> >> if (stopWords != null) >>> >> { >>> >> // first set up the parser with the new stop words >>> >> >>> >> if(UseStemmer) >>> >> { >>> >> _parser = new QueryParser(TEXT_FIELD, new >>> >> SnowballAnalyzer("English",stopWords)); >>> >> } >>> >> else >>> >> { >>> >> _parser = new QueryParser(TEXT_FIELD, new >>> >> StandardAnalyzer(stopWords)); >>> >> } >>> >> } >>> >> else >>> >> { // default stop words >>> >> if(UseStemmer) >>> >> { >>> >> _parser = new QueryParser(TEXT_FIELD, new >>> >> SnowballAnalyzer("English")); >>> >> } >>> >> else >>> >> { >>> >> _parser = new QueryParser(TEXT_FIELD, new >>> >> StandardAnalyzer()); >>> >> } >>> >> } >>> >> >>> >> _stopWords = stopWords; >>> >> } >>> >> >>> >> /*** >>> >> * Run the indexer >>> >> */ >>> >> public void index() >>> >> { >>> >> //now index >>> >> >>> >> Transaction tx = _textSession.beginTransaction(); >>> >> List<Prediction> predictions = _textSession.createQuery("from >>> >> Prediction as prediction").list(); >>> >> for(Prediction pred: predictions) >>> >> { >>> >> _textSession.index(pred); >>> >> } >>> >> tx.commit(); //index are written at commit time >>> >> _beenIndexed=true; >>> >> } >>> >> >>> >> public List<Prediction> searchPredictions(String queryStr) >>> >> { >>> >> // look in text column of predictions >>> >> try >>> >> { >>> >> if (queryStr != null && !queryStr.equals("")) >>> >> { >>> >> // need to add the field name to the querystring >>> >> queryStr = TEXT_FIELD + ":" + queryStr; >>> >> org.apache.lucene.search.Query luceneQuery = >>> >> _parser.parse(queryStr); >>> >> Query query = >>> _textSession.createFullTextQuery(luceneQuery, >>> >> Prediction.class); >>> >> List<Prediction> ret = query.list(); >>> >> //default fits the KEYWORDS similarity >>> >> if (ret != null) >>> >> { >>> >> switch(_defaultSimilarity) >>> >> { >>> >> >>> >> case KEYWORDS: >>> >> case HIGH: >>> >> case EXPAND: >>> >> case EXACT: >>> >> >>> >> return ret; >>> >> >>> >> } >>> >> >>> >> } >>> >> } >>> >> } >>> >> catch (Exception pe) >>> >> {// KKG TODO: Turn this into a better exception >>> >> pe.printStackTrace(); >>> >> } >>> >> return new ArrayList<Prediction>(); >>> >> } >>> >> } >>> >> >>> >> >>> >> >>> >> -- >>> >> View this message in context: >>> >> >>> http://www.nabble.com/Help-with-Snowball-Analyzer-tf4497960.html#a12827864 >>> >> Sent from the Lucene - Java Users mailing list archive at Nabble.com. >>> >> >>> >> >>> >> --------------------------------------------------------------------- >>> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>> >> >>> > >>> > >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Help-with-Snowball-Analyzer-tf4497960.html#a12831941 >>> Sent from the Lucene - Java Users mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> 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] >> >> >> > > -- View this message in context: http://www.nabble.com/Help-with-Snowball-Analyzer-tf4497960.html#a12863633 Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]