我有这样的架构
[{'author': 'edsec',
'awesomeness': 3,
'date': '2017-09-12T07:22:50.033712',
'url': 'http://nakedsecurity.sophos.com/2016/02/11/'},
{'author': '.thea',
'awesomeness': 2,
'date': '2017-09-12T08:22:49.969594',
'url': 'http://www.theage.com.au/victoria/'},
{'author': '.chic',
'awesomeness': 1,
'date': '2017-09-12T09:22:49.896584',
'url': 'http://www.chicagotribune.com/news/'},
{'author': '://ww',
'awesomeness': 1,
'date': '2017-09-12T10:19:58.723068',
'url': 'https://www.theage.com.au/victoria/'},
{'author': '://ww',
'awesomeness': 0,
'date': '2017-09-12T11:19:58.656548',
'url': 'https://www.networkworld.com/article/3028099/security/'},
{'author': '://av',
'awesomeness': 0,
'date': '2017-09-12T12:19:57.589412',
'url': 'https://avien.net/blog/educational-ransomware/'}]
现在我想在url上查询以查找带有http或https的url的出现。
至于url http://www.theage.com.au/victoria/我保存了想要丢弃的http和https版本。
我搜索了一下并写了查询,但没有给出足够的结果。
result = es.search(index='blogs', doc_type='text',
body={
"size": 10,
"query": {"bool":{
"should":[
{"term": {"url": final_url}},
{"term": {"url": url}}],
"minimum_should_match" : 1,
"boost" : 1.0
} }
}
)
在此
url = http://www.networkworld.com/article/3028099/security/ final_url = https://www.networkworld.com/article/3028099/security/
我变空了,没有结果匹配我应该得到其中一个。
答案 0 :(得分:1)
自己得到了答案
public class MyConfigBalanceRule extends ClientConfigEnabledRoundRobinRule {
@Override
public Server choose(Object key) {
List<Server> serverList = getLoadBalancer().getAllServers();
for (Server srv : serverList) {
if (srv.getPort == key) {
return srv;
}
}
}
}
答案 1 :(得分:0)
尝试此查询
如果分析了数据字段URL,那么这将起作用:
{
"query": {
"query_string": {
"query": "url: (http OR https) "
}
}
}
同样在查询中使用斜杠时,请确保将其转义。