[ https://issues.apache.org/jira/browse/SOLR-9894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
王海涛 updated SOLR-9894: ---------------------- Description: my schema.xml has a fieldType as folow: <fieldType name="my_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/> <filter class="org.wltea.pinyin.solr5.PinyinTokenFilterFactory" pinyinAll="true" minTermLength="2"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> Attention: index tokenzier useSmart is false query tokenzier useSmart is true But when I send query request with parameter q , the query tokenziner sometimes useSmart equals true sometimes useSmart equal false. That is so terrible! I guess the problem may be caught by tokenizer cache. when I query ,the tokenizer should use true as the useSmart's value, but it had cache the wrong tokenizer result which created by indexWriter who use false as useSmart's value. was: my schema.xml has a fieldType as folow: <fieldType name="my_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/> <filter class="org.wltea.pinyin.solr5.PinyinTokenFilterFactory" pinyinAll="true" minTermLength="2"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> Attention: index tokenzier useSmart is false query tokenzier useSmart is true But when I send query request with parameter q , the query tokenziner sometimes useSmart equals true sometimes useSmart equal false. That is so terrible! I guess the problem may be caught by tokenizer cache. when I query ,the tokenizer should use true as the useSmart's value, but it had cache the wrong tokenizer result which created by indexWriter who use false as useSmart's value. > Tokenizer work randomly > ----------------------- > > Key: SOLR-9894 > URL: https://issues.apache.org/jira/browse/SOLR-9894 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: query parsers > Affects Versions: 6.2.1 > Environment: solrcloud 6.2.1(3 solr nodes) > OS:linux > RAM:8G > Reporter: 王海涛 > Priority: Critical > Labels: patch > > my schema.xml has a fieldType as folow: > <fieldType name="my_ik" class="solr.TextField"> > <analyzer type="index"> > <tokenizer > class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/> > <filter > class="org.wltea.pinyin.solr5.PinyinTokenFilterFactory" pinyinAll="true" > minTermLength="2"/> > <filter class="solr.LowerCaseFilterFactory"/> > </analyzer> > <analyzer type="query"> > <tokenizer > class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/> > <filter class="solr.LowerCaseFilterFactory"/> > </analyzer> > </fieldType> > Attention: > index tokenzier useSmart is false > query tokenzier useSmart is true > But when I send query request with parameter q , > the query tokenziner sometimes useSmart equals true > sometimes useSmart equal false. > That is so terrible! > I guess the problem may be caught by tokenizer cache. > when I query ,the tokenizer should use true as the useSmart's value, > but it had cache the wrong tokenizer result which created by indexWriter who > use false as useSmart's value. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org