我正在使用Java API上的弹性搜索进行全文搜索。对象是将查询String的每个单词与字段(Operator And)匹配,并能够识别和匹配复数形式的单词。
例如:
Four salé
应找到Fours salés
,同时找不到Four sucré
。 (我的文件用法语)
我已经尝试了几种解决方法:
QueryBuilders.matchQuery("field",queryValue)
此代码可以找到单词或复数形式,但会返回与queryValue的一个单词匹配的所有结果。
QueryBuilders.mathcQuery("field",queryValue).operator(MatchQueryBuilder.Operator.AND)
此代码可以提供与每个单词匹配的结果,但它不会产生复数的世界。
我还尝试了几种与默认分析仪不同的分析仪,例如" snowball"," french"。奇怪的是,他们不会为某些单词返回完美匹配的结果。
有人能找到解决方法吗?
答案 0 :(得分:0)
如果您想要与字段完全匹配,则应将字段设为not_analyzed
。结帐:https://www.elastic.co/guide/en/elasticsearch/guide/current/_finding_exact_values.html#_term_query_with_text