關鍵詞:索引多值字段檢索,多值字段,匹配選項成功
一、索引多值字段檢索
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日星期一