Search Service
Search services are everywhere, such as Google search in daily life, wiki search in work, and product search in shopping. Data in such scenarios is generally large in size and structured and has more reads than writes. However, due to their transaction characteristics, traditional databases cannot well utilize space in search scenarios and are slow in full-text searches (such as LIKE statement). Elasticsearch thus came into being.
Elasticsearch is an open-source search engine widely used in full-text search. It can quickly index, search, and analyze a massive amount of text data. Tencent Cloud ES is a highly available and scalable cloud-hosted Elasticsearch service. It well supports both structured and non-structured data and provides easy-to-use RESTful APIs and clients in multiple languages to help you quickly build stable search services.
This document describes how to use ES and SCF to quickly build a search service by referring to the official Tencent Cloud ES documentation.
Resource Preparations
Deploying Search Service
Use SCF to deploy the frontend page and backend service of the search service.
1. In the top-left corner of the Functions page in the SCF console, select the region of the purchased ES cluster. 3. After the function is created, click Function name to enter the function details page.
4. On the Function configuration page, click Edit in the top-right corner, enable Private network access, select the VPC selected during ES cluster creation, and click Save. 6. In Submitting method on the Function codes page, select Upload local ZIP package, select the ZIP package just downloaded, and click Deploy. 7. Modify the code on the Function Code page. You need to modify the index.py
and index.html
files:
Change es_endpoint
in index.py
to the private network address of your ES cluster, such as http://10.0.3.14:9200
.
Change es_password
in index.py
to the password of ES Platinum Edition; if your ES is not Platinum Edition, leave it unchanged.
Change server_name
in index.html
to the name of the created SCF function, which is myserver
by default.
Note:
es_corpus_0126
is used as the index name by default in the sample. Make sure that the index is not used by other businesses. To modify it, modify the es_index
variable in index.py
.
8. Click Add trigger method on the Trigger method page, add an API Gateway trigger as shown below, enable integration response, and click Save. 9. View the function access path in Trigger method and access the page by clicking the path. 10. Upload the sample data of Elasticsearch Service. Click the text above the search box to automatically import data. 11. At this point, you have deployed a simple ES-based Q&A search service backend.
Learn More
Importing stopword and custom dictionary
Stopwords will not be searched by ES, and words in the custom dictionary will be retained during segmentation. In the previous sample, the default stopword dictionary and custom dictionary are imported. You can also import your own stopword and custom dictionaries in Plugin List > Update Dictionary on the ES cluster details page. Synonym configuration
To configure synonyms, you need to specify them when creating an index. Synonyms in Solr and WordNet formats are supported. For more information on the format, see Solr synonyms.
Was this page helpful?