Scout 使用 import 成功,但 ES 却查询不到
情况是这样的:
手上这套源码是之前公司找第三方开发公司做的,生产环境他们已经搭好了,但是不给操作说明这些文档。于是我从生产环境上把源码down了下来,程序中有涉及到elasticsearch,我怎么配置都不对。
说下环境,服务器的ES是6.5.4,我本地Docker也是
下面这是laravel下env的配置,这里跟网上大部分教程差的是,没有设置ELASTICSEARCH_INDEX
SCOUT_DRIVER=elasticsearch
SCOUT_QUEUE=true
ELASTICSEARCH_HOST=elasticsearch
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_SCHEME=http
下面说下我的操作步骤。我Docker用的是这个:https://gitee.com/mirrors/Dnmp。 ES上面说过了,是6.5.4,laravel/scout是6.1,Laravel框架是5.5。
模型地址是:App\Models\Company,以下是源码预览:
class Company extends User
{
use SoftDeletes, CompanySearchable;
protected $table = 'companys';
}
CompanySearchable这个的源码是:
namespace App\Search\Traits;
trait CompanySearchable
{
use ElasticsearchSearchable;
protected $search_index = 'company';
}
事先通过Postman增加了索引company,如下代码:
curl -H "Content-Type: application/json" -XPUT http://127.1:9200/company -d '{"aliases":{},"mappings":{"doc":{"dynamic_date_formats":["yyyy-MM-dd HH:mm:ss"],"dynamic_templates":[{"strings":{"match_mapping_type":"string","mapping":{"type":"keyword"}}}],"properties":{"address":{"type":"text","copy_to":["search_field2"]},"audit":{"type":"long"},"certificate_img":{"type":"keyword"},"certificate_img_audit":{"type":"long"},"click":{"type":"long"},"comment":{"type":"long"},"companyname":{"type":"text","copy_to":["search_field1"]},"contact":{"type":"keyword"},"contact_show":{"type":"long"},"contents":{"type":"text","copy_to":["search_field2"]},"created_at":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"currency":{"type":"keyword"},"district":{"type":"long"},"district_cn":{"type":"keyword","copy_to":["search_field1"]},"economy":{"type":"long"},"economy_cn":{"type":"keyword"},"email":{"type":"keyword"},"email_audit":{"type":"long"},"email_show":{"type":"long"},"id":{"type":"long"},"industry":{"type":"long"},"industry_cn":{"type":"keyword"},"invitation_code":{"type":"keyword"},"job_audit_num":{"type":"long"},"job_new_refresh":{"type":"long"},"job_sum_num":{"type":"long"},"job_wait_num":{"type":"long"},"jobs":{"type":"long"},"laiyuan":{"type":"long"},"landline_tel":{"type":"keyword"},"landline_tel_show":{"type":"long"},"last_login_ip":{"type":"long"},"last_login_time":{"type":"long"},"legal":{"type":"keyword"},"legal_idcard":{"type":"keyword"},"location":{"type":"geo_point"},"logo":{"type":"keyword"},"members_setmeal":{"properties":{"added":{"type":"keyword"},"created_at":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"days":{"type":"long"},"discount_auto_refresh_jobs":{"type":"float"},"discount_download_resume":{"type":"float"},"discount_emergency":{"type":"float"},"discount_jobfair":{"type":"float"},"discount_jobs":{"type":"float"},"discount_sms":{"type":"float"},"discount_stick":{"type":"float"},"discount_tpl":{"type":"float"},"download_resume":{"type":"long"},"download_resume_max":{"type":"long"},"endtime":{"type":"keyword"},"expense":{"type":"long"},"expire":{"type":"long"},"id":{"type":"long"},"is_free":{"type":"long"},"jobfair_num":{"type":"long"},"jobs_meanwhile":{"type":"long"},"refresh_jobs_free":{"type":"long"},"setmeal_id":{"type":"long"},"setmeal_img":{"type":"keyword"},"setmeal_name":{"type":"keyword"},"show_apply_contact":{"type":"long"},"show_contact_direct":{"type":"long"},"starttime":{"type":"long"},"uid":{"type":"long"},"updated_at":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"utype":{"type":"long"}}},"mobile":{"type":"long"},"mobile_audit":{"type":"long"},"nature":{"type":"long"},"nature_cn":{"type":"keyword","copy_to":["search_field1"]},"old_password":{"type":"keyword"},"organization_code":{"type":"keyword"},"pwd_hash":{"type":"keyword"},"qq":{"type":"keyword"},"qx_id":{"type":"long"},"refresh_time":{"type":"long"},"reg_address":{"type":"keyword"},"reg_ip":{"type":"long"},"reg_source":{"type":"long"},"reg_source_cn":{"type":"keyword"},"reg_time":{"type":"long"},"reg_type":{"type":"long"},"registered":{"type":"long"},"remind_email_ex_time":{"type":"long"},"remind_email_time":{"type":"long"},"replys":{"type":"long"},"resume_processing":{"type":"long"},"robot":{"type":"long"},"scale":{"type":"long"},"scale_cn":{"type":"keyword"},"search_field1":{"type":"text","norms":false,"index_options":"docs","analyzer":"ik_max_word","search_analyzer":"ik_smart"},"search_field2":{"type":"text","norms":false,"index_options":"docs","analyzer":"ik_max_word","search_analyzer":"ik_smart"},"setmeal_id":{"type":"long"},"setmeal_name":{"type":"keyword"},"short_desc":{"type":"text","copy_to":["search_field2"]},"short_name":{"type":"text","copy_to":["search_field2"]},"sms_num":{"type":"long"},"subsite_id":{"type":"long"},"subsite_ids":{"type":"long"},"tag":{"type":"long"},"tag_cn":{"type":"keyword"},"telephone_show":{"type":"long"},"tpl":{"type":"keyword"},"trade":{"type":"long"},"trade_cn":{"type":"keyword","copy_to":["search_field1"]},"unit_character":{"type":"long"},"unit_character_cn":{"type":"keyword"},"updated_at":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"user_status":{"type":"long"},"username":{"type":"keyword"},"utype":{"type":"long"},"website":{"type":"keyword"},"wzp_tpl":{"type":"long"}}}},"settings":{"index":{"number_of_shards":"1","blocks":{"read_only_allow_delete":"true"},"number_of_replicas":"0"}}}'
上面索引是能创建成功的,返回是:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "company"
}
于是我就执行
php artisan scout:import "App\Models\Company"
系统内有数据,而且也显示成功了
但是进ES却看不到,搞了好几天也想不出来问题出在哪?
推荐文章: