我在我的门户(基于J2EE)中使用Lucene进行索引和搜索服务。在Lucene中搜索关键字(OR,AND)
问题是关于Lucene的关键字。当您在搜索查询中使用其中之一时,您会收到错误消息。
例如:
searchTerms = "ik OR jij"
这工作得很好,因为它会搜索"ik"
或"jij"
searchTerms = "ik AND jij"
这工作得很好,它搜索"ik"
和"jij"
但当你搜索:
searchTerms = "OR"
searchTerms = "AND"
searchTerms = "ik OR"
searchTerms = "OR ik"
等等,它会失败,错误:
Component Name: STSE_RESULTS Class: org.apache.lucene.queryParser.ParseException Message: Cannot parse 'OR jij': Encountered "OR" at line 1, column 0. Was expecting one of: ...
这是有道理的,因为这些话是Lucene的关键字可能保留,并且将作为关键字。
在荷兰语中,“OR”这个词很重要,因为它具有“Ondernemings Raad”的含义。它用于很多文本,需要找到它。例如“或”确实有效,但不会返回与“OR”匹配的文本。我怎样才能让它搜索?
如何避免关键字“或”?或者我如何告诉Lucene将“或”作为搜索词而不是关键词。
的Lucene的版本试试? AFAIk,布尔查询适用于BooleanClause.Occur.SHOULD |必须|必须(或|和|不)与resp。 – Narayan 2009-08-21 11:48:37
在Luke中执行搜索工作==> http://www.getopt.org/luke/ – Narayan 2009-08-21 11:56:29