This is now working in Evo 3.1.2; the error wasn't in evoSearch itself or the database tables but a code change in Evo 3.x prior to 3.1.2. I haven't tested in Evo 1.4 and 2 but this should work too.
Here's what I did:
Step 1: Install evoSearch from Extras
This creates a plugin for indexing content, a snippet (based on DocLister) for outputting results and a chunk for styling individual results - all called evoSearch
Step 2: Index content
You need to do this at the end of your site build, run it once you've finished work on templates, TVs and content. This part indexes all of the content and content within TVs.
Edit the plugin 'evoSearch' and go to the configuration tab. Set 'Rows per session' (the second field) to 10000 and set 'Reindex All' (the third field) to 1.
In 'Exclude resource IDs' (the fifth field) add a comma separated list of page IDs that should be excluded from search results - if you change this later then you need to run the re-indexing process again.
In 'TV names to search' (the sixth field - textarea) add a comma separated list of custom TVs that contain content that needs to be indexed and searchable - by default evoSearch will only look within standard TVs such as pagetitle and content. Again, if you edit this later then you need to run the re-indexing process again.
Now edit any resource/page and save it, this will run the plugin and index all of the site content.
Go back and edit the plugin 'evoSearch' and change 'Rows per session' (the second field) back to 1 and 'Reindex All' (the third field) back to 0. This will revert back to just indexing the page you've edited on save, rather than the entire site every time you save a resource.
Repeat this process whenever you add new templates or TVs.
Step 3: Create the search template and page
There's an overview of parameters here (https://github.com/webber12/evoSearch) and this is based on DocLister so you can use DocLister parameters too, this is what I ended up using for paginated search results:
&statTpl=`<p>[+stat_total+] results for "[+stat_request+]"</p>`
&noResult=`<p>Nothing was found for "[+stat_request+]"</p>`
&TplDotsPage=`@CODE:<li><a href="[+link+]"> ... </a></li>`
&statTpl outputs the number or results found for the given search term at the top or your search results (or wherever you decide to add it within your design). You can't use chunks or @CODE within &statTpl - it'll just output the chunk name or @CODE.
The other parameters for pagination are all as per DocLister.
You can amend the chunk 'evoSearch' as you would with DocLister, remember if using content from TVs then add &tvList=`tvname,tvname2` to the evoSearch snippet call and use the placeholder [+tv.tvname+] within the evoSearch chunk.
I haven't yet worked out how to include text from custom TVs within the [+extract+] - adding custom TVs to the plugin will make evoSearch find pages that contain a term within a custom TV but it won't use the custom TV text within the extract, if the main content area is empty you will just get the pagetitle in the results.
The search page can be cached, but the snippet needs to be called un-cached as above [! !]
Step 4: Create the search form
This part confused me initially as evoSearch doesn't include a form like ajaxSearch did, you need to manually create it. Simply use this within a chunk or template wherever you want a search form:
<form action="[~10~]" method="GET">
<input type="text" name="search" placeholder="Search for...">
Replace the ID within 'action' with that of your search results page.
On the search results page you could pre-fill the search form with the search query like so:
<form action="[~10~]" method="GET">
<input type="text" name="search" id="search" placeholder="Search for..." value="[+stat_request+]">
You should now have a working search form and search results.
Please let me know if anything is unclear and I'll edit this post.