关于Lucene查询语法的总新手,所以需要一些帮助!
通过电子邮件和
搜索数据库email: <someone's email here>
在URL中作为搜索参数。
如何实现这一目标,以便只返回具有确切电子邮件地址的记录?
所以,如果我要搜索
email: test@gmail.com
并且数据库包含'test@email.com'和'test@gmail.com',只返回后者?
我已经看过http://www.lucenetutorial.com/lucene-query-syntax.html,但答案清楚了我。
任何帮助都会一如既往地受到赞赏!
答案 0 :(得分:1)
这是分析仪的问题。
如果要搜索确切的单词,则应使用Field.Index.NOT_ANALYZED
构建地址字段,然后将地址“test@email.com”分析为“test@email.com”。
这样的代码:
Document doc = new Document();
doc.add(new Field("email", "test@email.com", Field.Store.YES, Field.Index.NOT_ANALYZED));