Lucene is not matching strings having upper characters

非 Y 不嫁゛ 提交于 2019-12-08 04:32:47

问题


I am using Lucene Search Engine (v36), with the StandardAnalyzer. I use the MultiFieldQueryParser.

One of my fields is set as NOT_ANALYZED, because it's a version name containing alphanumeric characters and points. When this field contains an upper character, the search finds no results. Any Idea ?

Details:

The field contains values like:

  • version1.26.12.test.a
  • version1.26.12.test.b
  • v1.2
  • version1.Dummy

My search is returning results for the three first example above, but not for the last one.

I have not customized Lucene at all except that I bypassed the standard stopwords with Collections.emptySet().

Thanks a lot. Dimitri


回答1:


I believe if you mark a field as NOT_ANALYZED it is stored as is, however StandardAnalyzer uses LowerCaseFilter (and other see link). So if you search for "version1.Dummy", your query string would probably be "version1.dummy" which won't match to the stored string.



来源:https://stackoverflow.com/questions/12355430/lucene-is-not-matching-strings-having-upper-characters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!