搜索短语的部分内容会以奇怪的顺序返回结果, 例如,给出这两个文件
class SecondTabController: UIViewController {
@IBOutlet weak var labelTwo: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(wifiConnection), name: "wifi", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(noConnection), name: "noWifi", object: nil)
}
func wifiConnection(){
self.labelTwo.text = "Wifi Connection"
}
func noConnection(){
self.labelTwo.text = "No Connection"
}
deinit{
NSNotificationCenter.defaultCenter().removeObserver(self, name: "wifi", object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self, name: "noWifi", object: nil)
}
}
并寻找"家伙@ twingoco"将在第一个文档之前返回第二个文档,尽管很明显人们会期望看到第一个文档,它具有" CustomerEmail"字段几乎与短语一词相同。
搜索在门户网站内完成,除搜索字词外没有其他参数。 在搜索完整的电子邮件时,预期结果会先出现。
请不要参考"电子邮件短语"的具体情况,我一般会询问如何使搜索也考虑到部分短语。
答案 0 :(得分:3)
此问题与Lucene处理电子邮件地址的方式有关。 Azure搜索使用Lucene分析器作为其默认分析器:https://lucene.apache.org/core/5_2_0/core/org/apache/lucene/analysis/Analyzer.html
标准Lucene分析器将电子邮件视为单个令牌,这就是部分搜索不会为您创建点击的原因。 (与你搜索“car”类似,即使它是一个前缀,你也不会受到“小心”的打击。有关此问题的更多信息,请参见此处:Querying email addresses indexed by lucene
好消息是,您可以创建一个自定义tokanizer来帮助您解决此问题:检查已接受的答案Using Lucene to search for email addresses以查看如何实现此类标记生成器的方法,并通过Azure搜索查看此文档了解如何使用自定义分析器:https://azure.microsoft.com/en-gb/blog/custom-analyzers-in-azure-search
祝你好运!