2012-08-02 3 views
1

Я использую Lucene в android для поиска моего контента. У меня есть два типа документов, а у одного есть поле trashed, которое либо true, либо false. У другого типа документа нет этого поля. Я хочу вернуть все документы, которые имеют trashed:false, или не имеют поля trashed.Документы запроса Lucene, которые не имеют определенного поля

Я пробовал добавить -trashed:true в свой запрос, который возвращает все правильные документы, но он смешивает смещения окружения поиска с другим словом, а не тем, что я ищу.

EDIT:

Я должен добавить это к каждому поисковому запросу я выполняю. У меня есть индекс около 20 000 документов, и мне бы очень хотелось не перестраивать его, потому что у меня были мои пользователи, которые восстанавливают свои индексы в моей последней версии. Примечание: это на устройствах Android, поэтому требуется много времени и много батарей для переиндексации всех своих документов.

Спасибо за помощь.

+0

«Это беспорядок в окружающем окружающем пространстве, а не тот, который я ищу»? – Trejkaz

ответ

0

Я могу придумать следующее решение.

1) Если вы можете перестроить индекс.

Добавить trashed: na полевое значение в документы, для которых "trashed" не применимо.

Чтобы получить все документы с корзины: ложь или «громил» не применяется, вы можете использовать следующие ..

Запрос: громил: ложь или корзины: на

2) Если вы не можете восстановить индекс, я не уверен ...

+0

К сожалению, восстановление моего индекса не является возможным. – Ge3ng

+0

@ Ge3ng Lucene предоставляет способ «поиска» полей ... Я не думаю, что мы можем получить документ, если это «поле» не существует в первую очередь. – phani

+0

@ Ge3ng Возможно, вам удастся найти обходное решение, если вы можете уточнить .. - статистика индекса (размер, условия), как часто вам приходится искать документы в том виде, в котором вы указали, может быть больше информации ... – phani

Смежные вопросы