No results are returned when searching for a specific term because it is a Elasticsearch stopword
Written By
Jose L. Bango
How To articles are not official guidelines or officially
supporteddocumentation. They are community-contributed content and may
not alwaysreflect the latest updates to Liferay DXP. We welcome your
feedback toimprove How to articles!
While we make every effort to ensure this Knowledge Base is accurate,
itmay not always reflect the most recent updates or official
guidelines.We appreciate your understanding and encourage you to reach
out with anyfeedback or concerns.
Legacy Article
You are viewing an article from our legacy
"FastTrack"publication program, made available for
informational purposes. Articlesin this program were published without a
requirement for independentediting or verification and are provided
"as is" withoutguarantee.
Before using any information from this article, independently verify
itssuitability for your situation and project.
Issue
When searching for a specific term, no results are returned despite the fact that there should be some matches.
How to configure Elasticsearch stopwords.
Environment
Liferay DXP 7.0–7.4
Elasticsearch 2.x–7.x
Resolution
By default, Elasticsearch removes some words from token streams. These words are known as stop words.
If the search term you are using appears in the list for a given language, say Spanish, you need to customize your stop word list to allow that word and, therefore, get results when searching for that term.
To tackle this, you can redefine your analyzer for that language and customize the stop filter.
How to reimplement your language-x analyzer customizing the stop filter
Imagine we are using Spanish language and we want to remove "nada" (meaning nothing) from the list.
First of all, download the current list (spanish_stop.txt) and edit it as desired. In our case, removing the line where "nada" appears.
Then, copy the spanish analyzer from Elasticsearch reference and customize it to meet your needs. For example (it may need to be adapted to your own use case):
This website uses cookies and similar tools, some of which are provided by third parties (together “tools”). These tools enable us and the third parties to access and record certain user-related and activity data and to track your interactions with this website. These tools and the informationcollected are used to operate and secure this website, enhance performance, enable certain website features and functionality, analyze and improve website performance, and personalize user experience.
If you click “Accept All”, you allow the deployment of all these tools and collection of the information by us and the third parties for all these purposes.
If you click “Decline All” your IP address and other information may still be collected but only by tools (including third party tools) that are necessary to operate, secure and enable default website features and functionalities. Review and change your preferences by clicking the “Configurations” at any time.