2015-12-23 3 views
0

Я пишу запрос, чтобы получить все документы, которые имеют «am» или «pm» в их имени, и мой запрос выглядит так: (sellerName: am pm).Solr, возвращающий непревзойденные документы

Возвращается документ следующим образом:

doc1:

seller name:am 
    city: bangalore 
    state:Kar 
    country:In 
    zip:560034 

doc2:

  seller name:pm 
      city: bang 
      state:Kar 
      country:In 
      zip:560034 

doc3:

 seller name: Ganesh 
     city: bang 
     state:Kar pm 
     country:In 
     zip:560034 

Первые два документа становятся возвращены, как мы утра или вечера в названии, Мой вопрос, даже если у нас нет утра или вечера в имени продавца из Doc3 до сих пор это даже получая как совпадение. Это потому, что у нас есть . in zip код, если doc3.

Я не хочу, чтобы это возвращалось в результате. Как я могу это сделать? И почему его соответствие с Doc3, хотя doc3 не содержит am или pm.

Заранее спасибо.

ответ

0

Это стандартный синтаксис запроса lucene.

sellerName:am pm переводит на sellerName:am defaultField:pm. По умолчанию вы, вероятно, "all" field, или что-то в этом роде, я бы предположил.

Ваш запрос должен быть: sellerName:(am pm)

0

очень простой способ определить, что запрос направляется в Lucene является отправка debugQuery = истина, которая говорит вам, как именно обрабатывается запрос.