Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【CMDB+v3.12.2】全文检索提示“查询检索内容不存在” #7596

Closed
fadding opened this issue Nov 20, 2023 · 15 comments
Closed

【CMDB+v3.12.2】全文检索提示“查询检索内容不存在” #7596

fadding opened this issue Nov 20, 2023 · 15 comments

Comments

@fadding
Copy link

fadding commented Nov 20, 2023

全文检索开启后,提示检索内容不存在

开启全文检索后,monstache 也配置正常,启动后,前端搜索,报错,查看服务端topo server模块日志,得到错误

err: elastic: Error 404 (Not Found):
no such index [bk_cmdb.bk_biz_set_obj] [type=index_not_found_exception], rid: cc0000cndfrnjesz1g0002s4b0
E1120 14:27:34.374548
3251 service/fulltextsearch.go:7571 rid: cc0000cndfrnjesz1g0002s4b0,
err:

预期行为

能正常查询到创建的资源模型的实例化数据

版本

  • v3.12.2

如果是页面问题,请提供使用的操作系统和浏览器信息

  • OS: macos
  • Browser chrome
  • Version 版本 119.0.6045.159(正式版本) (arm64)

额外信息

  1. 查看mongo对应的db库,已经存在了很多cc_ObjectBase_0_pub_xxx 表
  2. 编译出来的monstache对应的两项同步的配置如下
# metadata collections.
change-stream-namespaces = [""]
direct-read-namespaces = [""]
direct-read-dynamic-include-regex = "cmdb.cc_ApplicationBase$|cc_SetBase$|cc_ModuleBase$|cmdb.cc_HostBase$|cmdb.cc_ObjDes$|cc_ObjAttDes$|cmdb.cc_ObjectBase_(.*)_pub_"
namespace-regex = "cmdb.cc_ApplicationBase$|cc_SetBase$|cc_ModuleBase$|cmdb.cc_HostBase$|cmdb.cc_ObjDes$|cc_ObjAttDes$|cmdb.cc_ObjectBase_(.*)_pub_"
@fadding
Copy link
Author

fadding commented Nov 20, 2023

direct-read-dynamic-include-regex 和 namespace-regex 默认的有问题,实际生成的不是pub结尾的,更改了正则表达式后,数据同步到了es,但是看 topo server 日志仍旧是找不到 bk_cmdb.bk_biz_set_obj 这个index,我查询es的索引,确实没找到这个,官方文档中 https://github.com/TencentBlueKing/bk-cmdb/blob/master/src/tools/monstache/README.md 索引管理部分还需要特别的操作么

@fadding
Copy link
Author

fadding commented Nov 20, 2023

经过不断尝试,发现es里面有个 bk_cmdb.set_20210710 索引,这个索引自动给了别名,别名是 bk_cmdb.set,但是主程序是去查的是 bk_cmdb.bk_biz_set_obj 索引,我手动去添加了alias后,可以了。这个是是程序的bug还是feature?

@wcy00000000000000
Copy link
Collaborator

bk_cmdb.bk_biz_set_obj 索引对应的表是cc_BizSetBase,monstache插件会默认创建这个索引,bk_cmdb.set_20210710 索引对应的别名是bk_cmdb.set

后续版本会修改全文检索数据同步方式

@fadding
Copy link
Author

fadding commented Nov 20, 2023

bk_cmdb.bk_biz_set_obj 索引对应的表是cc_BizSetBase,monstache插件会默认创建这个索引,bk_cmdb.set_20210710 索引对应的别名是bk_cmdb.set

后续版本会修改全文检索数据同步方式

但是我这边没有自动创建我手动创建了?是不是插件版本的问题?

@wcy00000000000000
Copy link
Collaborator

用3.12.2的代码重新编译一下插件试试

@fadding
Copy link
Author

fadding commented Nov 20, 2023

问题在这里,我使用3.12.2代码仅仅能编译出so的插件,没有 monstache 主程序, 但是对应的monstache 也需要同样的go依赖版本,否则插件不适配,正因为这样,我才选择了别人编译好的 #5308 (comment)

@fadding
Copy link
Author

fadding commented Nov 20, 2023

但是我现在设置了alias后,全文检索数据功能可用且正常,我有什么手动操作的方式订正么‘bk_cmdb.bk_biz_set_obj 索引对应的表是cc_BizSetBase’ 针对这个

@fadding
Copy link
Author

fadding commented Nov 20, 2023

目前es实例所有的索引如下

{
    "bk_cmdb.object_instance_20210710": {
        "aliases": {
            "bk_cmdb.object_instance": {}
        }
    },
    "bk_cmdb.biz_20210710": {
        "aliases": {
            "bk_cmdb.biz": {}
        }
    },
    "bk_cmdb.module_20210710": {
        "aliases": {
            "bk_cmdb.module": {}
        }
    },
    "bk_cmdb.model_20210710": {
        "aliases": {
            "bk_cmdb.model": {}
        }
    },
    "cmdb.cc_hostbase": {
        "aliases": {}
    },
    "cmdb.cc_objdes": {
        "aliases": {}
    },
    "cmdb.cc_applicationbase": {
        "aliases": {}
    },
    "cmdb.cc_objectbase": {
        "aliases": {}
    },
    "bk_cmdb.host_20210710": {
        "aliases": {
            "bk_cmdb.host": {}
        }
    },
    "bk_cmdb.set_20210710": {
        "aliases": {
            "bk_cmdb.bk_biz_set_obj": {},
            "bk_cmdb.set": {}
        }
    }
}

@wcy00000000000000
Copy link
Collaborator

如果不需要全文检索业务集数据的话直接创建一个bk_cmdb.bk_biz_set_obj_20210710索引把别名设置为bk_cmdb.bk_biz_set_obj就可以了

@fadding
Copy link
Author

fadding commented Nov 20, 2023

但是我还是想知道这边使用 monstache 是不是自己维护的独立分支?如果是的,我需要从哪里找?官方的release对应的依赖包版本和bk-cmdb的不匹配,插件无法和官方的release包共同使用

@wcy00000000000000
Copy link
Collaborator

不是自己维护的独立分支,需要用同样的go依赖版本自己编译

@fadding
Copy link
Author

fadding commented Nov 20, 2023

那就是我还需要手动修改依赖版本?我尝试修改了,发现还会有第二级依赖版本不对的问题。这边项目有对应的指引文档或者维护的独立分支么?

@wcy00000000000000
Copy link
Collaborator

monstache目前使用时只能按修改依赖的方式处理,比较复杂,后续规划的版本里会使用其他方式同步全文检索数据,不依赖于monstache

@fadding
Copy link
Author

fadding commented Nov 20, 2023

这里能透露点后续版本的计划么(大概什么版本和时间点以及同步方式)?目前使用monstache 确实麻烦,

@bd-xiaowang
Copy link
Collaborator

@fadding 预计24年年底前实现,当前全文检索部署方式请参考issue:#7013 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants