Hi, On Monday, August 25, 2014 11:40:53 AM UTC+2, Jörg Prante wrote: > > I do not fully understand what an external filter service is but I > remember such a question before. It does not matter where the filter terms > come from, you can set up your application, and add filter terms at ES > language level from there. This is the most flexible and scalable approach. >
I think by "your application" you mean the client making the call to ES to execute a query, right? If yes, I agree. But that requires this client application to do all this work. What if one wants to alter the query on the server/ES-side without the client having to do the work? It is not feasible to build a long string of fileld1:foo AND field2:bar AND > field3:test. You should really use the ES Java API or the DSL to build > filters, not Lucene Query language. > > > http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html > I *think* the Lucene query-like string was just "pseudo-query" to avoid typing in the JSON variant of that. A special case is where a service already provides Lucene bitsets and this > should be processed in ES. I have not enough imagination how this can work > at all, regarding the distributed nature of ES, but you can plug Lucene > filters (bitsets) via the filter API into ES queries, see > org.elasticsearch.index.query.TermsFilterParser > for an example how ES transforms JSON filter terms to Lucene filters. > Thanks Jörg, will look into that! Otis -- Performance Monitoring * Log Analytics * Search Analytics Solr & Elasticsearch Support * http://sematext.com/ > On Mon, Aug 25, 2014 at 10:58 AM, Pawel <pawel...@gmail.com <javascript:>> > wrote: > >> Hi Joerg, >> You are right about analyzer. I have also a little different case or >> maybe I missed something (and analyzer-way can also handle my case). >> >> I'd like to process a query and add additional filter to each of queries. >> To build this filter external service should be queried to fetch additional >> data and use this data to build proper filter. Filter can be build for a >> few fields: for example fileld1:foo AND field2:bar AND field3:test. Do you >> have any suggestions? >> >> -- >> Paweł >> >> On Thu, Aug 21, 2014 at 10:31 AM, joerg...@gmail.com <javascript:> < >> joerg...@gmail.com <javascript:>> wrote: >> >>> I would rather use the analyzer/token filter machinery of Lucene for >>> search/index extensions, plugging this into ES is a breeze. >>> >>> If you want field specific mangling, I would use the field mapper to >>> create a new field type. There, you have read access to the whole >>> (immutable) document source and you can pre-process the field input data in >>> the given document context before indexing. >>> >>> Jörg >>> >>> >>> On Wed, Aug 20, 2014 at 12:00 PM, Otis Gospodnetic < >>> otis.gos...@gmail.com <javascript:>> wrote: >>> >>>> Hi, >>>> >>>> What is the best way to pre-process a query a bit before ES executes >>>> it? (e.g. I want to shingle the query string a bit and expand/rewrite a >>>> query before letting ES execute it) >>>> >>>> I can create a custom Rest Action and a new API endpoint, but I'd >>>> prefer to hide custom query pre-processing behind the standard ES query >>>> API. >>>> >>>> Is there any way to do that? >>>> >>>> Thanks, >>>> Otis >>>> -- >>>> Elasticsearch Performance Monitoring * Log Management * Search Analytics >>>> http://sematext.com/ >>>> >>>> -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/d1f3ea20-1118-4044-92d6-f96fa0f83cd7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.