EasyfullsearchWP replaces the native WordPress search engine to improve the effectiveness and relevance of all searches.
It lets you manage posts an/or pages, to choose the fields you want to use in the searches (including comments, author, custom fields, categories, taxonomy …).
By giving you predefined values, it helps you to easyly improve your user’s experience.
As the easyfullsearch engine is more powerful than the basic wordpress search mechanism. it allows administrator and developer to use the wide range of features of the easyfullsearch engine.
This version is the free version of EasyfullsearchWP. Presently, easyfullsearchWP is managing main user’s searches coming from the search widget or administation’s pages.
Easyfullsearch has a companion tool, called Efsmyadmin. This tool gives you access to a large amount of functions to manage the index. It is available on the Easyfullsearch’s web site (http://www.easyfullsearch.com).
The plugin’s settings are managed through an unique administration page. This page is part of the “settings” menu, in administration interface of the site. The administration page is nammed “Easy Full Search”.
This page is composed of different sections (all these points are discussed in later sections :
This part describes in detail all the setting sections.
In order to understand options and actions available in the setting page, some concepts of Easyfullsearch should be explained .
Easyfullsearch (also called EFS) is a generic search engine for full text and faceting searches. It is written in php language. Its goal is to have a modern and powerful search engine, fully integrated in the php environment. Easyfullsearch is self sufficient. It doesn’t use any external database.
Easyfullsearch uses some basic concepts :
“index” : the place where Easyfullsearch stores all the data used to deliver the service
Easyfullsearch manages its own index (a collection of files). It doesn’t use generic databases (such as mysql). An index contains all files needed to manage queries.
The index is a subdirectory of the “efs_data” directory (which is directly under the easyfullsearchWp directory). Easyfullsearch could manage multiple index. in the case of wordpress, only one index is created. The name of the index (the directory itself) is based on the name of the site.
It means that if you remove the plugin, the index will be also remove. It also means that you can save all the index by saving its directory. You also could move the index from one server to another by simply moving this directory. In this case you must also be sure that wordpress’ references (posts’ ids ) are unchanged. The index uses the wordpress’ ids as item references.
“item” : All entities stored in an index are called item. An item is a collection of fields. This generic term is use to show that an item could be a set of words, posts, pages, classified … and can be more complex than a simple document. In the case of wordpress, an item is a post or a page. This means results may contain post or page references.
“Item id” : A unique id to identify an item. In the case of wordpress the item id is directly the wordress id associated to the post or the page.
“Field” : The fileds are the different parts of an item (such as title, content, date …). Fields are containing terms. In the case of wordpress mains fields associated to an item are : title, content, comments, author, attached files, dates …
“Term” : The basic element in a field (in general a word, a date …)
Basically, in the wordpress usage, the “items” are posts or pages, the “fields” are the different parts of the item (such as post_title, post_content …), and the “terms” are words extracted from the fields.
That’s enough for concepts. More explanation can be found in the easyfullsearch website (http://www.easyfullsearch.com)
This section contains the most useful actions to manage the plugin. In most of cases, you only need these.
This button is useful if your web site contains items befoe you install the easyfullsearchWP plugin. As the index is empty at the activation, you have to index all already existing items (pots, pages). It’s also the case if you remove all items from the index (button “Empty the index” ).
This action will search in the wordpress base all the items (posts, pages …) to index. You can give a large amount of items to index in one pass. A default value is generated according to the capability of your server to process the operation. The suggested value is “safe”. Easyfullsearch has a great capability of fast indexing.
easyfullsearchWP memorise the last id indexed (see informations section). If all item are not indexed, the process continue from the last indexed item. If all items can’t be indexed in one pass, you need to repeat the operation. The value suggested will be zero if Easyfullsearch finds that all items are indexed. in general site with less than 20 000 ietms will take few minutes to index all the base. If you have very large bases and need some help, let me know.
All posts and pages created or modified after the activation of the plugin will be automatically indexed.
If your wordpress site have no page and no post awhen you activate the plugin, you have nothing to do. All pages or posts will be automatically added to the index when they will be published.
When you activate the plugin, easyfullsearch will not automaticaly replace the standard wordperss search mechanism. As discussed before, some posts or pages may be not indexed at that time. To use actually the plugin in user’s searches you have to activate it by checking the check box of this option.
It allows you to temporary use the standard wordpress search. You don’t have to desactivate the plugin to do that. Even if this option is not checked, Easyfullsearch continues to index all the created or modified items.
When you activate the plugin, easyfullsearch will not automaticaly replace the standard wordperss search mechanism in the administration menu. As for users’ searches, some posts or pages may be not indexed at that time. To use actually the plugin in the administration menu, you have to activate it by checking the check box of this option.
It allows you to temporary use the standard wordpress search. You don’t have to desactivate the plugin to do that. Even if this option is not checked, Easyfullsearch continues to index all the created or modified items.
This section gives basic useful information about the index. All information is given to help or satisfy curiosity. In general you doesn’t really need them.
The path of the directory containing the index. All files of the index are stored in this directory (with subdirectories). The regular name is : mysite\wp-content\plugins\easyfullsearchWP/efs_data/index_WPmysite.
As you see easyfullsearchWP created a subdirectory called efs_data. The actual directory of the index is “index_WPmysite”.
This section lets you manage the type of elements to include in the search.
The list of indexed elements, associated to checkbox, allows you to manage each of them. The fact to check or not a type doesn’t means you need to rebuild the index.
You can manage the fields used in the search itself in the next part of the options.
This section is important. Default values have been defined to insure the maximum quality of results. A more precise tuning may be usefull depending the content itself. To correctly manage this part, you need to understand how results are sorted.
When you change the weight of fields, the next searches will be execute according to these values. It’s not necessary to rebuild the index. So you can try different options to find the best values.
To present how easyfullsearch sorts the results, you have to consider two axes. The first is the weight of each field in the sort. The second is the fact to separate different fields.
In general search engines combine both by only using a weight attached to each field, the common manner is to give a higher weight to the most important field. But this way introduced a few unexpected sorting results or required to have a smaller range of values for less important fields, giving sometimes confusing results.
The approach used by easyfullsearch is more powerful, even if we only use a part of it in this plugin. Basically, we have two “sorting methods”.
The first is an associated calculation of occurrence and fields. For each selected field, the number of occurrence is multiplied by the weight associated to the field. This mechanism lets you decide the combination of weight. If you want to favour one field, you just have to give it a large weight. If you want to have more mixed results, you can give a narrower range of weight. The default values are set up to give priority to the title (weight of 10000) but if another item contains a lot of occurrences in the content field (weight of 1000, it can have the same final weight.
The second one is the date (day/month or year) of the last updated of the post or the page. The value of the date is managed by wordpress. The choose of “day” as smaller value have been done to limit the effect of date in the result. The use of date may be more time consuming if you have a large amount of results. You must consider the fact that this option in unnecessary in general.
This section contains the list of fields which could be used or not, and the weight associated to each of them. Let consider the first column
The first column lets you choose which fields will be used in the search proccess. You could change it as you like without re-indexing. This will be directly use in the next search (user or admin).
The fields are applicable as well to the posts or pages
The second column gives the weight associated to each field. If you want to change default values.You need to understand how the results are sorted to well manage this part. See explanations above.
If you give a value of 0 to a field, it just give it a null weight. This doesn’t mean that the field is not used in the search. It means that this field is not important in the sorting process. So, a post could be part of the result even if one occurence have been found only in this field. It will simply placed at the end of results. To exclude a field, use the previous options in the first column.
You could change the weights as you like. The next searches will be executed according to these values ( without rebuilding the index). In general, you have to try different options. As next searches will use the new values, you can directly test them. Easyfullsearch offers you a large liberty to establish your own balance.
After establishing the use and the weight of each field, you could choose to also considering the date in the sort process. In this case you can choose to give priority to the date compared to the fields. the date could be used before (means the newer item will be classified first) or after (means that if two items have the same weight, the newer one will be classified first).
This options lets you to choose the default operator if the search string contains more than one term (“AND” or “OR”). The alternative is to search all of the terms (the AND operator, the default value), or at least one of them (the OR operator). Lets consider the “Vinci code film” search.
If you check the AND option , the query will be interpreted as “Vinci AND code AND film”. This way may be more natural, but it is also more restrictive. You could be desapointed not seeing some results.
If you let the option unchecked,the “OR” operator will be used. In this case the query will be interpreted as “Vinci OR code OR film”. On one hand, you will have more results, on the other hand the results may contain posts or pages less relevant.
The default language is used by Easyfullsearch when a new item is indexed. During the terms extraction, Easyfullsearch will use a stop words list to exclude some terms (words) from the index. These terms will not be found in searches later. The index will be less space consuming, faster during the inserts and the searches. You can manage different lists of stop words according to the language. This option gives you the way to choose the language used.
Some stop words list are embedded within the plugin (typically French and English). If you need to add another language you have first to set up the new language (the next option field named “New language”. You must save options before changing the new list of stop words.
If a language is associated to the item to index (such as a post), it will be used as language for the indexing operation. The default language is only used if no language is associated to an item. The language is supposed to be associated with the taxonomy field.
As language is used in the index operation to take the correct list of stop words, it is not necessary to distinguish different use of the same language, such as French in Belgium, Canada or France, or English in UK or USA. This is useful for translation, but not really for stop words.
In every language, some words are useless for the search relevance. The list of stop words allows you to exclude them. It makes the insert/update operations faster as well as the searches itself.
This button will updates the list of stop words inside the Easyfullsearch engin. The page will be updated and the list will take account your changes (words are sorted again). All new publishing of posts or pages will use this new list of stop words, but all previously inserted items are not updated.
All futur search are using the new list. It means that words in the list of stop words will be excluded from the search. In the other hand, it means that all previoulsy inserted items can’t be retrieve if they contain a word newly excluded from the list. In this case you may have to empty the index and rebuild it.
This section lets you act in the Easyfullsearch index and get some additional infomations
If your site is often updated, the index can be optimized to ensure a faster answer. In this case, the most often requested terms will be optimized. In most of case you will not have to do that. During this action, publishing may be slowed.
That’s why the use of this button is protected by the entry field. It demands you to enter a random generated code.
This button lets you remove all items from the index. In general you have not to do that. But you have to do if you want to rebuild all the index. This can also be useful if your items are very frequently modified and you want to shrunk the index.
The use of this button is protected by the entry field after. It demands you to enter a random generated code.
If you want to use the fuzzy logic in the search (see section “Use fuzzy query”), you must generate the dictionnary. The dictionnary is generated from the content of the index. Easyfullsearch will generate “fuzzy” terms from a requests according the nearer terms present in the dictionnary.
All the whole content of the index is not analyse. Easyfullsearcjh optimizes this action. it will be done in an incremental process. EasyfullsearchWp give you the information how much content is waiting to be to be includes in the dictionnary.
The easyfullsearch plugin has several hooks letting developers add functionalities. if you need more explanation on their actual use, please let me know.
Documentation of EasyfullsearchWP’s plugin – Version 1.0 – October 2016 – Author M Jarleton – All rights reserved – Copyright Easyfullsearch 2016