on 06-08-2012 10:36 AM
Hi Gurus,
I would like to ask for your help regarding Free-From Search in MDM Catalog.
Please help me determine the differences of the Operators below:
- (progressive)
- Keyword contains
- Keyword starts with
- Keyword equals
- Keyword sounds like
We are thinking of changing the configuration from progressive to Keyword contains however we are still not sure about the impact of this.
Thank you so much.
Hi Hershey,
First let me explain how a keyword search works and how Stemming works and then ill tell I will explain about the operators
Keyword Search: When you perform a keyword search, MDM will search for that particular word
across all the fields of the table for which the keyword property is enabled(This property is set in MDM Console).
Stemming: When This property is enabled in MDM Console(Keyword property set to Stemmer), MDM will find the base form of the entered word and search for across all te keyword enabled fields in a table. e.g, if you enter the word "that" in keyword search, the system will find the base word and search for both the words "that" or "Those" across all the keyword enabled fields.(For more information refer the SAP MDM Data manager guide Pg No 46)
Progressive search: It will work similar to stemming, it will find other words which are very similar to the provided search word.
Contains: This will search for the provided search word, which might or might not be a part of another word across all keyword enabled fields.
Starts With: will search for all the keyword enabled fields if their is any field which starts with the provided search parameter.
Equals: Will look for the exact match across all the keyword enabled fields.
Sounds Like: This will ignore spelling errors and search for the provide search parameter in all the keyword enabled fields.
Hope this helps,
Rgds,
Prasad.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hershey,
Which operator to use depends on how you want to perform search.
Again you have to understand that searching for a "value/string" using Keyword will be done on all the fields for which Keyword property is enabled.
In most cases, users use the other fields available in the free form search(fields for which the search tab is set to "yes" are available in the free form search).
If you were to take my opinion, use the fields available in the free form search, this will search for the string only in that particular field accross the repository. Use the operator as "Contains", which will throw more acurate results.
Rgds,
Prasad
Hi Hershey,
In addition to response from Prasad, you should use Keyword Search for those fields only which would contain small number of unique words. And regarding the operators to be used:
e.g. searching "talking" will display results for "talking" only.
e.g. searching "talking" will display results for "talkin", "talk", "talks" etc as well because all of these share same stem "talk".
I hope this helps.
Regards,
Ankush Bhardwaj
Hi Ankur and Ankush,
thank you so much for the responses. We simulated in the MDM Manager, when we use Keyword field to search for like 0R and the operator is Progressive, it did not provide any result. However when we changed the operator to contains, a result was provided such as 0R1234 (sample only). If "contains" selects only specific single in the record fields, how come it returned a result with 0R1234.
Thank you
Hi Hershley,
In Keyword field Progressive operator will work only if you have stemming installed in it. Else it will check for exact word.
Progressive search has compound effect when stemming is installed,Finding variants of the search word in addition to the search word itself.
That's why when you are seraching for OR in OR1234. it is not providing any result.
Please check whether stemming is enabled or not.
I hope this helps.
Thanks
Prateek
Hi Hershey,
Since you are using operator 'contain' for keyword search, it will select only for single specific string in all the fields set for Keyword search. In your case, you had searched for '0R'. So system would return all search results which contain '0R' as a string or sub-string. e.g. it will select results for '0R', '0R1234', '120R34' or '12340R'. So contains will search for '0' and 'R' together in the field values because in all the above examples, values "contains" 0R(position of this string appearing does not matter).
If we had kept the operator as "equals" then it would select search results which have values == '0R'.
But contains will match '0R' with sub-string values as well and returns the results.
I hope this helps. Let me know if you have any queries.
Regards,
Ankush Bhardwaj
Hi Hershey,
You can check that In SAP MDM Console.
Just go to that particular repository.
Select the required table.
Select the particular field in that table.
Check the Field detail of that field
Inside Field detail, Go to Keyword and check whether 'Stemmer' is selected or not.
If it is 'Stemmer' then stemmer is enabled for that field else not.
Hope it helps
Thanks
Prateek
Hi Hershey,
Just like SAP MDM data Manager is for managing the master data. Inside the data manager you are doing the search operation in the required table. So all these administration settings regarding the field will be done on different client named as MDM Console. basically Console is used for data modeling purpose.
Regards
Prateek
Hi Hershey,
Progressive operator basically is for Hybrid kind of search. If you specify a recognized word as search term, then it will perform stemming for this and returns search results. If you provide combination of characters which do not form a 'word' then it will provide various type of search only if you provide some "wildcard character" along with search term.
e.g. In your case you are searching for '0R' (Zero and then Capital R), which is not recognized character in Dictionary, then if you do not provide any wildcard character with it, it will search based upon stemming first and then according to "equals" operator. Since it is not a word and there would be no value == '0R' so it is not returning any search result.
If you search with wildcard character '*'
Search Term "*0R*", it will search similar to operator "contains" and will display search results which will have any sub-string '0R' in the field value. So it will return search results like '0R1234', '12340R' etc etc.
If you use wildcard character '='
If your search term is like '=0R', then it will act as 'equals' operator and will return search results for values =='0R' only and will not search in sub strings for this value and also no stemming will be done.
If you use wildcard character '+'
If you search like '+0R' then it would search first based upon stemming, then equals and then sounds like.
So "progressive" operator can search like all operators based upon the wilcard character mentioned with search term.
So kindly check in your system by searching '*0R*' and it will surely return search results as expected. Kindly let me know if your problem is solved using wildcards. Thank you.
Regards,
Ankush Bhardwaj
Hi Ankush, thank you so much for the explanation. But in our case if other data are being inputted such as AR without any wildcard character, it returns a value. There are just some cases that the search does not return a value. Like our previous sample if we search using 0R, no result but in the system we actually have like 0R123.
Regards
Hi Hershey,
AR contains both alphabets but 0R is Alphanumeric (0 is numeric value and R is alphabet).
In stemming, it will consider AR as root and return results corresponding to 'AR' and its variants(variants could be zero or more than zero). But in case of alphanumeric values, it is not able to stem these as it is not able to recognize this alphanumeric value as a word and hence it is not returning any search result.
So i would suggest you to use wildcard character '*' in case you are searching for alphanumeric strings in the values so that system would perform "contains" search and display results. While in case of normal alphabetic search, you need not maintain any wildcard as it will stem the string and return expected results. I hope this is helpful for you now.
Regards,
Ankush Bhardwaj
Hi Hershey,
I am not sure why is it happening. You need to check at your end and decide on which option you need to use as per your requirement. I have described the functionality to you and now the decision lies with you. Kindly reward points if answers were helpful. Thank you.
Regards,
Ankush Bhardwaj
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.