我已经使用 StandardAnalyzer 建立了一个索引,在这个索引中有几个字段。例如,假设它具有 Id 和 Type。两者都是 NON_ANALYZED,这意味着您只能按原样搜索它们。
我的索引中有一些条目:
{Id: "1", Type: "Location"},
{Id: "2", Type: "Group"},
{Id: "3", Type: "Location"}
当我搜索+Id:1
或任何其他数字时,我会得到适当的结果(再次使用 StandardAnalyzer)。
但是,当我搜索+Type:Location
或 时+Type:Group
,我没有得到任何结果。奇怪的是,当我启用前导通配符时,+Type:*ocation
确实会返回结果!+Type:*Location
或其他组合不。
这让我相信索引器/查询不喜欢大写字符!在将类型小写到索引它们之前location
,group
我可以搜索它们。
如果我将 Type-field 设置为 ANALYZED,它几乎可以用于任何搜索(大写/小写等),但我想按原样查询 Type-field。
我完全困惑为什么它会这样做。谁能向我解释为什么我的索引器不允许我搜索具有大写价值的 NON_ANALYZED 字段?