我正在研究ElasticSearch并希望同时激活精确的单词和全文搜索。使用not_analyzed索引进行精确的单词搜索工作正常,全文搜索在分析索引时工作正常。现在我想结合这两个。下面是我想要的例子:
假设我有两条记录:
如果用户搜索“apple”,那么应该有一个结果(精确的单词搜索),但如果用户搜索“apple *”,则必须有两个记录(全文搜索)。
答案 0 :(得分:0)
我可以使用elasticsearch执行确切的单词和全文搜索。我已将字段映射到not_analyzed索引,然后使用通配符作为全文,使用过滤器/术语进行精确搜索。所以我几乎完成了所有的事情。现在最后一期我将面临如何在多个字段中使用通配符。
下面是通配符查询:
"query": {
"wildcard": {
"Field1": {
"value": "*apple*"
} ,
"Field2": {
"value": "*apple*"
}
}
}
我有多个字段Field1,Field2 .... FieldN。我必须为所有文件搜索相同的值。我试过了:
import UIKit
import XLPagerTabStrip
class MenuTabStrip: ButtonBarPagerTabStripViewController {
override func viewDidLoad() {
self.settings.style.selectedBarHeight = 5.0
self.settings.style.selectedBarBackgroundColor = UIColor.blueColor()
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewControllersForPagerTabStrip(pagerTabStripController: PagerTabStripViewController) -> [UIViewController]{
return [Reminders(), testbobViewController()]
}
但它只显示最后一个字段的结果(在上面的例子中为Field2)。
实际上我不想对所有字段进行查询,并将结果与单个结果集相结合。我认为必须有单一查询来获取带有通配符的所有字段的结果。请帮帮我。
由于 Tarlok