我正在使用Lucene进行搜索,但是无法匹配其中带有Unicode字符的单词。这是一个简短的测试:
import static org.junit.Assert.assertTrue;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.regex.RegexQuery;
import org.junit.Test;
public class ReturnUnicodeTest {
@Test
public void testQueryWithUnicodeChar() {
// zero to many non-whitespace followed by zero to many whitespace chars
Term mustTerm = new Term("FieldName", "Áuto" + "[^\\s]*(\\s*)");
RegexQuery mustTermQuery = new RegexQuery(mustTerm);
mustTermQuery.getRegexImplementation().compile("Áuto" + "[^\\s]*(\\s*)");
boolean match = mustTermQuery.getRegexImplementation().match("Test Áutomotive");
assertTrue(match);
}
}
我不确定这是我的Lucene实现设置还是RegexQuery的限制或其他东西。不起作用的一些可能原因是什么?