假设我有一个包含用户集合的索引,将其全名存储在name字段中。其中一些用户的格式是"Firstname Lastname",而一些是"Firstname midlename (s) Lastname"
。
- Joe Bloggs
- Joe Fred Bloggs
- Joe John Paul Bloggs
如果我搜索"Joe Bloggs",我需要它返回上面列出的所有用户。
我试过使用PhraseQuery,但这只会返回'Joe Bloggs'(我认为由于术语需要以正确的顺序)。
是我使用通配符查询的唯一选择吗?我不希望"乔·史密斯"或"约翰·布洛格斯"被退回。此外,我无法重新编写索引,将全名拆分为单独的字段。
我应该如何最好地形成我的查询,让事情按要求工作?
谢谢
- 请注意使用的分析仪。
你可能只是想用"whitespace"来分隔空格。加上"小写"以便"fred"与"fred"匹配
- 你的查询应该简单地是"name:joe AND name: blogs "(或者如果你是手动构建你的查询对象)
name字段必须包含两个词