首页 文章 精选 留言 我的

精选列表

搜索[文本渲染],共10000篇文章
优秀的个人博客,低调大师

Elasticsearch 大文本字段中的中文精确查询

中文精确查询用Elasticsearch怎么做? Google了不少文章,个人觉得没有抓住重点,或者Elasticsearch升级后有所改变。 背景介绍 前人精品文章推荐简单来讲,从Elasticsearch设计的初衷来讲, match查询用来做搜索引擎类似的评分查询,精确匹配查询用term来做,参见各种Elasticsearch的手册,不展开。中文的精确查询由于存在index保存阶段的分词和search阶段的分词,所以直接沿用这些方法并不适用。 问题:中文查询用match能查到,用term查不到。 准确的说是比如字段 title:北京奥运 , 查找 “北京奥运” ok, 查找 “北京” 没有,查找"北"在默认情况下可以找到很多。 解决办法: 采用term查询里面的wildcard query GET /_search { "query": { "wildcard" : { "user" : "ki*y" } } } 注意事项 Elasticsearch 6.0版本 Text字段 不再提供 not_analysed 属性,请改用keyword类型, 字段长度受限: Lucene's term byte-length limit of 32766 。中文utf8字符串长度 32766/4=8190+ 比较保险。

优秀的个人博客,低调大师

Activity查看数据与文本框反回数据

1、Activity传递数据,并显示Activity上。 2、Android用Intent来做activity的跳转,轻量级的数据用Bundle 配合着传递。 传回数据用startActivityForResult来搞。 main类代码如下: packagecom.smart.intent; importjava.io.Serializable; importandroid.app.Activity; importandroid.content.Intent; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.Toast; classDataimplementsSerializable { publicStringname="老梁"; publicint[]values=newint[] {1,3,5,9,0,9,2,3,7,8}; } publicclassMainextendsActivityimplementsOnClickListener{ /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ButtonbtnStart=(Button)findViewById(R.id.btnStartActivity); ButtonbtnReturn=(Button)findViewById(R.id.btnReturn); btnStart.setOnClickListener(this);//绑定器 btnReturn.setOnClickListener(this); } @Override//判断按是哪一个按键。 publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.btnStartActivity: Datadata=newData(); Intentintent=newIntent(this,SmartBrowser.class); intent.putExtra("name","Smart"); intent.putExtra("age",988); intent.putExtra("data",data); startActivity(intent); break; caseR.id.btnReturn: IntentproIntent=newIntent(this,SmartProcess.class); startActivityForResult(proIntent,R.layout.process); break; } } @Override//判断数据接收时的确定与取消。 protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ switch(requestCode){ caseR.layout.process: if(resultCode==20){ Toasttoast=Toast.makeText(this,data.getStringExtra("text"),Toast.LENGTH_LONG); toast.show(); }elseif(resultCode==21){ Toasttoast=Toast.makeText(this,"你取消了操作",Toast.LENGTH_LONG); toast.show(); } break; default: break; } //反回码与请求码一样。 super.onActivityResult(requestCode,resultCode,data); } } 数据显示代码: packagecom.smart.intent; importandroid.app.Activity; importandroid.os.Bundle; importandroid.widget.TextView; publicclassSmartBrowserextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.browser); TextViewtextView=(TextView)findViewById(R.id.textview); Bundlebundle=getIntent().getExtras();//得到数据。 Strings=""; s+="name:"+bundle.getString("name")+"\n"; s+="name:"+bundle.getInt("age")+"\n"; Datadata=(Data)bundle.getSerializable("data"); s+="Data.name:"+data.name+"\n";//进行接收数据。 Stringvalues=""; for(inti=0;i<data.values.length;i++){ values+=data.values[i]+"";//得到数据。 } s+="Data.values:"+values; textView.setText(s);//显示数据 } } startActivityForResult反回数据 packagecom.smart.intent; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.EditText; publicclassSmartProcessextendsActivityimplementsOnClickListener { privateEditTexteditText; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.process); editText=(EditText)findViewById(R.id.edittext); ButtonbtnOK=(Button)findViewById(R.id.btnOK); ButtonbtnCencel=(Button)findViewById(R.id.btnCancel); btnOK.setOnClickListener(this); btnCencel.setOnClickListener(this); } @Override//按建的判断 publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.btnOK: getIntent().putExtra("text",editText.getText().toString()); setResult(20,getIntent()); break; caseR.id.btnCancel: setResult(21); break; } finish(); } } 本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/498894,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册