搜索
nickname_oo
做饭的程序员
展开
-
Lucene多字段搜索
最近在学习Lucene的过程中遇到了需要多域搜索并排序的问题,在网上找了找,资料不是很多,现在都列出来,又需要的可以自己认真看看,都是从其他网站粘贴过来的,所以比较乱,感谢原创的作者们! 使用MultiFieldQueryParser类即可。 示例代码: package com.lucene.search; import java.io.File;转载 2014-07-25 11:39:25 · 775 阅读 · 0 评论 -
elasticsearch安装及常见错误
1、下载https://www.elastic.co/downloads2、配置修改配置文件,详情见https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html?nsukey=xvzjcgmgqazKrr8Mh74Q4kvGMUrtfpOvEiFaR44ofwk1Bygcis8JmOn%2...原创 2018-08-07 11:33:25 · 587 阅读 · 0 评论 -
elasticsearch性能优化
1. 多线程程序插入,可以根据服务器情况开启多个线程index 速度可以提高n倍, n>=2 2. 如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias curl -XPUT 'http://10.1.*.*:9200/dw-search/' -d '{ "settings" : { "number转载 2018-01-26 18:20:12 · 1051 阅读 · 0 评论 -
elasticsearch创建索引和查询索引
1、注册索引settings='{"settings":{"index":{"number_of_shards":15,"number_of_replicas":6,"refresh_interval":"300s"}},"analysis":{"analyzer":{"ik":{"tokenizer":"ik_smart"}}}}'curl -XPUThttp://xxxxx:920原创 2018-01-26 18:47:42 · 837 阅读 · 0 评论 -
elasticsearch query and
{ "query": { "bool": { "must": [ { "match": { "name.formatted": { "query": "daniel tyrone", "operator": "and"转载 2018-01-31 14:38:34 · 296 阅读 · 0 评论 -
机器学习排序较多用于广告系统而很少用在搜索排序
主要原因有二: 1.在机器学习系统里,弄清楚为什么一个检索结果比另一个结果排序更高很困难。某一个具体策略的原因非常难以捉摸。很多机器学习算法均是黑盒,顶多告诉一些权重与模型,它们很难表述清楚一个具体策略的原因; 2.在一些场景下,即使人已经成功的分辨出基于哪些因素,使得一个结果比另一个结果的排序靠前,但依然很难构建一个机器学习系统,在单独的场景下,去拟合这些因素的权重。施加到一个机器学习系转载 2017-02-23 18:09:52 · 1290 阅读 · 0 评论 -
搜索缓存
1. 使用缓存必要性(1)提高搜索速度 搜索引擎的搜索速度对用户的搜索体验非常关键,如果一个搜索引擎搜索速度非常慢,需要搜索某一关键词需要等一段时间才能显示,那么将严重伤害用户体验。为了提高搜索速度,百度、谷歌等主流搜索引擎都使用搜索引擎缓存技术(2)提高热门关键词的搜索效率 用户搜索某一个关键词和我们购买某一个产品是一样的,都存在二八原理,就是20%的用户产生80%的效果,8原创 2017-02-21 18:52:26 · 3724 阅读 · 1 评论 -
搜索优化
优化搜索,帮助用户快捷方便地找到满意的博客 -----站在用户的角度 -----用户满意的博客:符合用户意愿、博客质量好原创 2016-07-20 15:53:39 · 574 阅读 · 0 评论 -
ES索引优化
ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡。所以从上我可以通过索引的settings进行第一优化: “index.translog.flush_threshold_ops”: “100000″ “index.refresh_interval”: “-1″, 这两个参数第一是到tranlog数据达到多少条进行平衡转载 2016-07-06 14:33:43 · 6943 阅读 · 0 评论 -
google搜索
核心排序团队、国际搜索团队、用户界面团队、网络作弊以及其他团队。谷歌的搜索排序是一整套的算法,用于寻找相关程度最高的文档以满足每个用户查询需求。我们每天在海量的网络信息中用这套算法处理数亿次的查询,每一个用户的查询我们都会应用这套算法。我们的网页搜索是访问量最高也是最知名的搜索服务,这套算法也用在其他的谷歌搜索服务,包括图片搜索、资讯搜索、YouTube、谷歌地图、谷歌图书等等,在这些搜索转载 2015-09-01 18:30:35 · 673 阅读 · 0 评论 -
lucene搜索方式(query类型)
Lucene有多种搜索方式,可以根据需要选择不同的方式。1、词条搜索(单个关键字查找) 主要对象是TermQuery 调用方式如下: Term term=new Term(字段名,搜索关键字);Query query=new TermQuery(term);Hits hits=searcher.search(query); 2、组转载 2014-07-25 10:00:20 · 1117 阅读 · 0 评论 -
Lucene的多域查询、结果中查询、查询结果分页、高亮查询结果和结果评分
1.针对多个域的一次性查询1.1.三种方案 使用lucene构造搜索引擎的时候,如果要针对多个域进行一次性查询,一般来说有三种方法: 第一种实现方法是创建多值的全包含域的文本进行索引,这个方案最简单。但是这个防范有个缺点:你不能直接对每个域的加权进行控制。 第二种方法是使用MultiFieldQueryParser,它是QueryParse转载 2014-07-25 11:27:14 · 710 阅读 · 0 评论 -
【转】利用Boost影响Lucene查询结果的排序
前提:不对结果做sort操作. 在搜索中,并不是所有的Document和Fields都是平等的.有些技术会要求到对其Doucment或者Fields的权值改变,默认值为:1.0F,以上需求都是通过改变Document的boost因子来改变的. 下面是通过lucene3.0,IKAnalyzer 1.通过设置doc boost改变排序结果 Java代码转载 2014-07-25 11:43:15 · 829 阅读 · 0 评论 -
IndexSearcher
1,使用indexreader创建indexsearcher. 2,indexsearcher在使用完了以后不要关闭. 3.使用indexreader.isCurrent()判断索引是否被indexwriter改动. 4,如果索引被改动,indexsearcher.close()先前那个,然后new indexsearcher(indexreader).传strin转载 2014-07-25 11:27:48 · 1406 阅读 · 0 评论 -
lucene 查询 (转载)
原网址:http://hi.baidu.com/lszhuhaichao/blog/item/ccffc7cb858f1514bf09e66f.html http://heioo.iteye.com/blog/1335060Lucene3.0之查询处理(1):原理2010-03-06 23:37Lucene3.0之查询处理(1):原理 1、 查询的三转载 2014-07-25 10:59:05 · 671 阅读 · 0 评论 -
es 原生API
1、创建索引http://192.168.1.1:9200/indexname1?pretty{ "settings" : { "number_of_shards" : 3, "number_of_replicas" : 2, "refresh_interval": "300s" }}put为创建get为查看ht...原创 2018-08-07 17:58:50 · 1107 阅读 · 0 评论