当我们搜索“ prd gem”时。它返回所有带有prd gem的结果名称。 但是当我们仅搜索“ prd”时,它将返回其中带有prd的所有结果,例如prd,prd gem,prd time等。为什么现在不精确搜索?
以下为图片中的代码:
RouterModule.forRoot(routes, { useHash: true })
精确搜索可以很好地处理带有空格的名称,就像我搜索“ Prd Gem”一样,它仅显示一个名称为“ Prd Gem”的产品,但是当我仅搜索“ prd”这样的词时,精确搜索不起作用,它显示所有产品,例如“ prd”,“ prd gem”
那么为了实现相同的功能,需要对上述代码进行哪些更改?
答案 0 :(得分:0)
那是因为您正在“标记” lucene索引中的数据。
默认情况下,Lucene会尝试将字符串分成令牌,以允许并加快此类搜索的速度。
我假设您正在使用最新的休眠模式。您可以尝试使用以下注释“ productName”字段吗?
@Field(name = "productName", index = Index.YES, analyze = Analyze.NO, norms = Norms.NO)
“ analyze = Analyze.no”部分应禁用此功能。