Hey All,
I have been working in PHP for about 5 years, but never seriously until the past year. I'm self trained, but feel pretty confident about my abilities. I've never published anything publicly (except my Laravel Timezone Javascript/PHP companion which I use to store data in UTC but display it in the users current time zone based on their location).
Anyway, I have been integrating ElasticSearch into my project. While the ElasticSearch PHP Library makes it easy to run the query, it does not to much in regards to helping you structure your query.
You must past an array (converted to JSON) that has to be in the exact right format.
I have been working on building a Query Builder that allows you to pass all the information you want to a set of easy to use API's and then it will return the array that should be provided to the Search Client.
Optionally, I have a function called "run" that will go ahead and send it to the ElasticSearch PHP client for you and return a custom class of ElasticSearchResult that i have created that makes it easy to pull out the results as well as know where you are in your pagination and other meta data that isn't as easily accessible as it should be on a search result.
I am wanting to put these on GitHub and I am wondering if there are any people out there that would want to help me maintain this. The reason I am asking is that there is a good chance I will be traveling and away from my computer this fall and winter, so I want to make sure that if someone puts a PR in it can get responded to.
Does (a) anybody have a need for ElasticSearch Query Builder to take the headache out of building the ridiculous JSON strings and (b) would be interested in helping out with this project?
Again, this is just a QueryBuilder (and optional SearchResult class). It does not install or configure ES nor does it index any of your documents (although I do have some traits and interfaces that can be pulled in to make indexing documents and pushing them to the index dead easy...but you have to write the function to denote exactly what data on each model you want put into the index).
Sorry for such a long post. Just looking to see if anybody wants to help out.
UPDATE
I should also point out, this is not specific to Laravel. While there is a ServiceProvider and Facade available for Laravel, it can be used just as easily without it. The idea is to make it generally available for any PHP project.