The following request searches the product-index and order-index indices.
Create Elasticsearch Index
PUT product-index { "settings": { "analysis": { "normalizer": { "lowercaseNormalizer": { "type": "custom", "filter": ["lowercase", "asciifolding"] } } } }, "mappings": { "properties": { "ProductName": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "ProductCode": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "ProductDescription": { "type": "text" }, "ProductFamily": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "Color": { "type": "keyword" } } } }
Adding sample data/records
#Add first Document in elasticsearch PUT /product-index/_doc/1 { "ProductName": "CBC Anti Virus", "ProductCode": "Network", "ProductDescription": "APAC", "ProductFamily": "Sales Cloud", "Color": "Silver" } PUT /product-index/_doc/2 { "ProductName": "CBC Esoteric", "ProductDescription": "CBC Panel - 1", "ProductFamily": "Hardware", "Color": "BLUE" } PUT /product-index/_doc/3 { "ProductName": "CBC Oncology", "ProductCode": "CBC Health", "ProductFamily": "Software" } PUT /product-index/_doc/4 { "ProductName": "CBC Panel", "ProductCode": "Secure Wifi", "ProductDescription": "Only One Charge Type" } PUT /product-index/_doc/5 { "ProductName": "CBC Panel (Invitro)", "ProductCode": "Secure Wifi", "ProductDescription": "CBC Panel", "ProductFamily": "Hardware", "Color": "GREEN" } PUT /product-index/_doc/6 { "ProductName": "CBC Panel - Beijing", "ProductCode": "CBC Panel", "ProductDescription": "Only One Charge Type", "ProductFamily": "Software", "Color": "BLUE" } PUT /product-index/_doc/7 { "ProductName": "Esoteric", "ProductCode": "CBC", "ProductFamily": "Marketing Cloud", "Color": "WHITE" } PUT /product-index/_doc/8 { "ProductName": "Oncology", "ProductCode": "Network", "ProductDescription": "CBC", "ProductFamily": "Sales Cloud", "Color": "WHITE" }
Create Elasticsearch Index
PUT order-index { "settings": { "analysis": { "normalizer": { "lowercaseNormalizer": { "type": "custom", "filter": [ "lowercase", "asciifolding" ] } } } }, "mappings": { "properties": { "OrderCode": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "Description": { "type": "text" }, "Family": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "ProductName": { "type": "keyword", "normalizer": "lowercaseNormalizer" }, "ProductId": { "type": "keyword" } } } }
Adding sample data/records
#Add first Document in elasticsearch PUT /order-index/_doc/5c57754b-86a6-41f1-a4af-de65b531fe8f { "OrderCode": "Network", "Description": "APAC", "Family": "Sales Cloud", "ProductName": "CBC Anti Virus", "ProductId": 1 } PUT /order-index/_doc/218c4907-89c2-482f-90cc-61dd7e27f999 { "OrderCode": "Network", "Description": "CBC Panel - 1", "Family": "Hardware", "ProductName": "CBC Esoteric", "ProductId": 2 }
View data/regcords
GET /product-index/_search
GET /order-index/_search
Search case-insensitive records
#Try 1 GET /order-index,product-index/_search { "_source": { "include": [ "Id", "OrderCode", "ProductId", "ProductCode" ], "exclude": [] }, "from": 0, "size": 100, "track_total_hits": true, "query": { "bool": { "filter": [ { "bool": { "should": [ { "query_string": { "query": "*Network*", "fields": [ "ProductCode", "OrderCode" ], "boost": 7 } } ] } } ] } } }
Note
- Text fields are analyzed.
- For keyword fields we need to add custom elasticsearch setting for analysis.
Reference
- run elasticsearch locally run elasticsearch locally
- Documentation: Elasticsearch - Search multiple data stream and indices