目录
1.vue中 el挂载点只能命中一个元素吗?每个vue只能挂载一个元素吗?(如下el选中了两个相同的div)
- 解决
答:只能一个,详见: https://zhuanlan.zhihu.com/p/111691226
<body>
<div id="app" class="app">
{{message}}
<span>{{message}}</span>
</div>
<div id="app" class="app">
{{message}}
<span>{{message}}</span>
</div>
<!-- 引入vue的包 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:".app",
data:{
message:"测试el"
}
})
</script>
</body>
2.es中term query搜索时,出现如下情况,数据中有name为 张三,王老三 的数据。用三为关键词,则两个都可以搜到,用老三的话就全都搜不到(我已经在ik分词器中定义了名为老三的分词了),按理说,还是会有一条王老三的记录被搜索到。
- 解决
@Test
public void searchDocument() throws IOException {
//搜索请求
SearchRequest searchRequest = new SearchRequest("cuiyao","cuiyao2");
//搜索构建对象
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//构建高亮显示
searchSourceBuilder.highlighter();
//查询条件
TermQueryBuilder queryBuilder = QueryBuilders.termQuery("name","老三");//精确查询
//MatchAllQueryBuilder queryBuilder = QueryBuilders.matchAllQuery();//全部匹配
//MatchQueryBuilder queryBuilder = QueryBuilders.matchQuery("name","王老");//匹配
//将查询条件放入搜索构建对象
searchSourceBuilder.query(queryBuilder);
//搜索构建对象 放入 搜索请求
searchRequest.source(searchSourceBuilder);
//发送搜索请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest,RequestOptions.DEFAULT);
System.out.println("------------------------------------------->");
System.out.println(JSON.toJSONString(searchResponse.getHits()));
System.out.println("------------------------------------------->");
for(SearchHit searchHit:searchResponse.getHits().getHits()){
System.out.println(searchHit.getSourceAsMap());
}
}
3.ES中的requireFieldMatch方法,表示显示高亮时匹配项显示多个或一个,但是我想配置只高亮一个,却一直高亮多个
- 解决
//高亮
HighlightBuilder highlightBuilder = new HighlightBuilder();
highlightBuilder.field("title");
highlightBuilder.preTags("<span style='color:blue'>");
highlightBuilder.postTags("</span>");
highlightBuilder.requireFieldMatch();//如果要多个匹配项高亮,这项要为false
searchSourceBuilder.highlighter(highlightBuilder);