Hello Alexey,

You should use the query DSL and not the more like this API. You can create 
a boolean query where one clause is your more like this query and the other 
one is your ignore category query (better use a filter here if you can). 

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html

However, more like this of the DSL only takes a like_text parameter, you 
cannot pass the id of the document. This will change in a subsequent 
version of ES. For now, to simulate this functionality, you can use 
multiple mlt queries with a like_text set to the value of each field of the 
queried document, inside a boolean query. Let me know if this helps.

Alex

On Wednesday, March 19, 2014 5:01:06 AM UTC+1, Alexey Bagryancev wrote:
>
> Anyone can help me? It really does not work...
>
> среда, 19 марта 2014 г., 2:05:49 UTC+7 пользователь Alexey Bagryancev 
> написал:
>>
>> Hi,
>>
>> I am trying to filter moreLikeThis results by adding additional query - 
>> but it seems to ignore it at all.
>>
>> I tried to run my ignoreQuery separately and it works fine, but how to 
>> make it work with moreLikeThis? Please help me.
>>
>> $ignoreQuery = $this->IgnoreCategoryQuery('movies')
>>
>>
>>
>> $this->resultsSet = $this->index->moreLikeThis(
>>            new \Elastica\Document($id), 
>>            array_merge($this->mlt_fields, array('search_size' => $this->
>> size, 'search_from' => $this->from)), 
>>            $ignoreQuery);
>>
>>
>>
>> My IgnoreCategory function:
>>
>> public function IgnoreCategoryQuery($category = 'main') 
>> { 
>>  $categoriesTermQuery = new \Elastica\Query\Term();
>>  $categoriesTermQuery->setTerm('categories', $category);
>>  
>>  $categoriesBoolQuery = new \Elastica\Query\Bool(); 
>>  $categoriesBoolQuery->addMustNot($categoriesTermQuery);
>>  
>>  return $categoriesBoolQuery;
>> }
>>
>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/e605d6e2-b42b-4661-b819-90735a9581ec%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to