I have a Choice list column which allow multiple selection with internal name = Category. now since this is a list column not site column, so no managed property nor crawl property will get auto created. so how i can manually create managed property and crawl property for this list column, as i want to use it inside the PnP Search web part? Thanks
Once the content is crawled, SharePoint should create Crawled Properties for you. If the column name is "category" the crawled property will be "ows_category". IIRC, this is also an out of the box field, so the property may already exist. In fact, if it's a choice field as you say it may get generated as ows_q_CHCS_Category. The real challenge is figuring out which one it is, which is why I would recommend creating the field with a unique "internal name" first, then rename it "Category" for display purposes after you are successful.
Once you know which crawled property (or properties) are your candidate fields, create a Managed Property and map the crawled property to it. This process has not changed since 2013, so you should not find it difficult to find out how. Here is one of my old, old, blog posts that relates to the topic. Search Based Site Directory
Remember, you need to populate the list with some data that you can search for. The data in the list will trigger the creation of the Crawled Property. Also, this can be a tedious process. Have patience, it's not instantaneous.