关键词:索引多值字段检索,多值字段,匹配选项成功
一、索引多值字段检索
1.1 多值字段是什么?
如下图所示:
注:上图中Problem是mongo数据库dzplib的一个表(应该叫Collection),comments及content都是表的字段,也就是一级字段;而content里面又包括如:docLibID,elementContent,elementName等字段,我把它称作多值字段。
1.2 如何检索多值字段?
1) 找到了多字段查询,如下:
multi_match()
1.3 安装Elastica
1)描述
Elastica是ElasticSearch的一个php客户端。它能在php对ES进行一些操作。接下来的进攻方向是用Elastic对ES进行二级检索。
2)安装composer
a.)运行下面命令更新依赖包:
sudo apt-get update
b.) 安装curl用下面命令:
sudo apt-get install curl php5-cli git
c.)下载安装Composer
curl -sS https://getcomposer.org/installer| sudo php -- --install-dir=
/app/web/api/v1/application/controllers/ES--filename=composer
curl -sS https://getcomposer.org/installer| sudo php -- --install-dir=
/app/web/api/v1/application/controllers/ES--filename=composer
php composer-setup.php --install-dir=bin--filename=composer
/app/server/php-5.5.7/bin/phpcomposer-setup.php --install-dir=/app/web/api/v1/application/controllers/ES--filename=composer
2)Elastica的安装
1.4 现在php报错
1)原因分析:
现在运行测试14服务器上,报错。如下:
root@localhostTest:/# php -v
PHP Warning: PHP Startup: Unable to load dynamic library'/usr/lib/php5/20121212/gd.so' - libjpeg.so.62: cannot open shared object file:No such file or directory in Unknown on line 0
PHP 5.5.9-1ubuntu4.21 (cli) (built:Feb 9 2017 20:54:58)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014Zend Technologies
with Zend OPcache v7.0.3, Copyright (c)1999-2014, by Zend Technologies
root@localhostTest:/#
注:可能是我更新依赖包时,报错了。
1.5 多值字段
我经常理解的二级字段(即:字段里面包含的字段),原字段称为多值字段。
这个多值查询是成功的-----------------------------------但主要研究的是content
curl -XPOST http://localhost:9200/dzplib/Problem/_search?pretty -d'
{"query":{
"multi_match": {
"query": "3",
"fields": [
"text",
"subQstNum"
]
}}
}'
匹配选项成功,因为都是ik分词,如下写即可:
curl -XPOST http://localhost:9200/dzplib/Problem/_search?pretty -d'
{"query":{
"multi_match": {
"query": "通过改变橡皮筋的长度来改变拉力做功的数值",
"fields": [
"text",
"content"
]
}}
}'
2017年3月27日星期一