Some knowledge documents are not searched in Service Point.
STEPS TO REPRODUCE:
1. Create the following four knowledge documents.
[KD1]
Title: Test Email
Summary, Problem, Resolution fields: empty
[KD2]
Title: Test 1 Summary
Summary: Email
Problem & Solution fields: (empty)
[KD3]
Title: Test 2 Problem
Problem: Email
Summary & Resolution fields: (empty)
[KD4]
Title: Test 2 Resolution
Resolution: Email
Summary & Problem fields: (empty)
2. Search for a keyword "email" on 'Knowledge' tab of Service Desk Manager.
--->
Confirm they are searched as expected.
3. Open Service Point and type "email" in the Search bar.
Actual Behavior:
It shows only one document "KD1".
However, if a user searches for a keyword "test" in Service Point, all four documents are searched.
Expected Behavior:
All documents should have been searched when searched for "email" in Service Point.
Release : 17.3
The Knowledge Document (KD) search functionality on Service Point/xFlow Interface are working as per design.
According to the existing query used by the KD search functionality, we can see it works as expected. The KD search on Service Point is designed to retrieve the best documents matching the user query, but it does not retrieve all the matching documents.
The scenario of the reproducible steps would not be an ideal scenario as it does not reflect the real world use case. For the query to work we need a large corpus of documents indexed. However, if you would like to search for all documents with the keyword, as a workaround, you may try to modify the query used by the search functionality to perform the plain text search with the user query to fetch all the matching documents.
NOTE:
The file with the query: application.conf stored under (xFlow)\APPS\Services\searchmicroservice-17.0.479\conf folder.
1. Take a backup before you make changes.
2. Locate lines beginning from "sQKD" and "sQKDWithTenant" and update as per below.
e.g. After the updated the query,
…
sQKD = """{
"_source": ["title","problem","kd_summary","resolution"],
"size" : 100,
"query":{
"multi_match":{
"fields": ["title","kd_summary","problem","resolution"],
"query" : "%s",
"minimum_should_match" : "50%%",
"analyzer" : "cat_analyzer"
}
}
}""",
sQKDWithTenant = """{
"_source": ["title","problem","kd_summary","resolution"],
"size" : 100,
"query":{
"bool":{
"must": {
"multi_match": {
"fields": ["title","kd_summary","problem","resolution"],
"query" : "%s",
"minimum_should_match" : "50%%",
"analyzer" : "cat_analyzer"
}
},
"filter":{
"terms": {
"tenant.id": %s
}
}
}
}
}""",
…
3. Restart Search Server and xFlow services.