当用户在引号中输入搜索词时,搜索引擎是否应该准确搜索引号内的内容,还是应该对查询执行某些分析,例如没有引号的查询?
例如,查询"U.S. of America"
是否与US of America
匹配?同样,查询"foo-bar"
应该匹配foo bar
吗?当这些查询不在引号中时,我认为答案是肯定的,它们应该匹配。但是,当放在引号中时,用户建议他们正在寻找完全匹配。问题是究竟有多精确。
我知道这更像是一种设计选择,而不是编程选择,但我怎么能回答这个问题呢?如果被问到,我的用户可能不会知道我在说什么。这里有一个简单的答案吗?
答案 0 :(得分:0)
对于开箱即用的解决方案,请检查simple-query-string-query。你会注意到它需要考虑qoutes。
与'foo-bar'对比'foo bar'和'美国'有关vs'US'。这是由索引上的分析器和标记器决定的。这些定义了如何将字符串拆分为标记以及如何修改或甚至忽略标记。除非您指定自定义内容,否则会使用standard analyzer和the standard tokenizer。检查链接如何处理您的案件。
了解在执行词组匹配see this post时如何考虑令牌位置。