TencentBlueKing / bk-cmdb

蓝鲸智云配置平台(BlueKing CMDB)
http://bk.tencent.com
Other
5.4k stars 1.58k forks source link

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

Closed fadding closed 1 month ago

fadding commented 10 months ago

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

开启全文检索后,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:

预期行为

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

版本

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

额外信息

  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 commented 10 months ago

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 commented 10 months ago

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

wcy00000000000000 commented 10 months ago

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

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

fadding commented 10 months ago

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

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

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

wcy00000000000000 commented 10 months ago

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

fadding commented 10 months ago

问题在这里,我使用3.12.2代码仅仅能编译出so的插件,没有 monstache 主程序, 但是对应的monstache 也需要同样的go依赖版本,否则插件不适配,正因为这样,我才选择了别人编译好的 https://github.com/TencentBlueKing/bk-cmdb/issues/5308#issuecomment-1049832234

fadding commented 10 months ago

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

fadding commented 10 months ago

目前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 commented 10 months ago

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

fadding commented 10 months ago

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

wcy00000000000000 commented 10 months ago

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

fadding commented 10 months ago

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

wcy00000000000000 commented 10 months ago

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

fadding commented 10 months ago

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

bd-xiaowang commented 1 month ago

@fadding 预计24年年底前实现,当前全文检索部署方式请参考issue:https://github.com/TencentBlueKing/bk-cmdb/issues/7013#issuecomment-2325679697