标准查询中词相等查询不到符合条件的记录
问题描述
在项目实现过程中,有时需要使用词相等来对数据进行检索,但是,如果检索的字段存储的值是中文时,可能会出现本来应该检索到的记录也没有检索到的问题
解决思路
1.检查信息结构图中关于该字段的分词设置
2.检查信息结构图是否正确导出了数据库配置
3.检查数据库中相应字段的索引信息是否与导出的数据库配置一致
详细步骤
1.检查信息结构图中关于该字段的分词设置
- 打开站点的信息结构图,找到出问题的表、字段,选中字段,右键,在弹出的菜单中,选择属性

- 查看字段的具体属性,找到是否分词这个条目,如果期望是使用词相等来搜索该字段,则这里应该选择 否

- 如果这里是 是 ,则证明分词设置有问题,请找组长反馈问题
- 如果这里是 否 ,则证明分词设置没问题,继续按照后续步骤操作
2.检查信息结构图是否正确导出了数据库配置
- 在站点的信息结构图界面,点击文件-保存,文件-导出数据库配置

- 在本地的源码目录(通常是~/Source/xxx.wware.org/)中,右键,在弹出的菜单中选择 提交(英文版的是Commit),弹出提交代码对话框

- 如果弹出的对话框中待提交部分 存在 mapping.json 这个文件,则证明数据库配置配置未正常导出,请找组长反馈问题
- 如果弹出的对话框中待提交部分 不存在 mapping.json 这个文件,则证明数据库配置配置已正常导出,继续按照后续步骤操作
- 注意: 这里只是为了检查发现问题,不要真的提交,检查完之后须将提交代码的对话框关掉
3.检查数据库中相应字段的索引信息是否与导出的数据库配置一致
- 在wide主界面点击 服务器-索引数据库(Elastic)

- 在打开的ES控制台界面中点击 服务器-浏览器打开

- 在浏览器打开的页面中,找到正在做的站点,点击域名下的 信息-索引信息 ,弹出索引信息对话框

- 在浏览器打开的页面中按 Ctrl+f 搜索出问题的字段的机读名称

- 使用文本编辑器打开本地的 mapping.json 文件,按 Ctrl+f 搜索出问题的字段的机读名称

- 对比二者两个搜索的结果(即字段对应的index和type是否一致)
- 如果一致,证明这里也是没有问题的,但是搜索仍然有问题,此时,请找组长反馈问题
- 如果不一致,请按照 更新数据库 的指引文档操作,之后,这里应该会变成一致的,此时再测试页面上的词相等搜索功能,问题应该已经解决
- 如果上述步骤执行完毕之后还是没有解决问题,请找组长反馈问题