elasticsearch
一只路人甲
有梦想的路人甲
展开
-
ES 嵌套对象数据问题
很明显,这样的结构丢失了属性名称和属性值的关联,导致查询的时候,出现失效,如果业务要求实现精准搜索,那么这种方案是不满足要求的。新增一个search_value ,把属性名和属性值拼接之后存入这个字段,然后在筛选时也将属性名和属性值拼接,并精确匹配 search_value 字段即可。原因是 ES 对于json对象数组的做了压扁处理,比如上面的例子在 ES真实 存储的结构是这样的。我想要的结果是外包装属性值为白色的产品,结果会多出来另外一个属性机器颜色也是白色的产品。原创 2024-03-28 12:58:34 · 486 阅读 · 0 评论 -
ES使用copy_to小技巧
给properties.title加上了copy_to参数,值是skus_title,Elasticsearch 就会把这个字段值复制到 skus_title 字段里,这样就可以在 multi_match 的 fields 里通过 skus_title 来匹配。此时我们想查询在skus中存在或者properties中存在的某个匹配的值,skus和properties都是nested嵌套对象类型的,想要的匹配条件并非在一个nested中,如果使用查询。现在使用上面的查询语句就可以查出正确的值了。原创 2024-03-28 11:11:59 · 681 阅读 · 0 评论 -
es同义词配置规则
2,a,b:通俗的来讲,就是不管用户输入的是a还是b,es在查询的是用a,或者b搜索.比如 保温杯,杯子,用户输入的是"保温杯",es会用"杯子"去做搜索,也会用"保温杯"搜索。搜索a的时候会同时再搜索b,搜索b的时候会同时再搜索a。1,a=>b: 通俗的来讲,就是尽管用户输入的是a,但是es在查询的是会转成b去搜索,"=>"左边的词全部会被右边的词替换。4.a,b=>a,b 搜索a就等于搜索a或者搜索b,搜索b就等于搜索a或者搜索b。3.a,b=>c 搜索a和b都会转成搜索c。原创 2024-03-24 23:15:32 · 426 阅读 · 0 评论 -
docker安装elasticsearch
这里一定要看好版本,好多个版本这里插件不一样,坑很多,最终如下,ik里面放的是v7.17.18.zip出来的所有文件。在config中创建elasticsearch.yml文件并写入配置。另外一种方法网络问题一直失败,不建议。原创 2024-03-24 21:31:56 · 257 阅读 · 0 评论