2015-03-12 3 views
0

Поскольку я перестраиваю (rebuild_index), имена полей, возвращаемые из facets.fields, начинают исчезать, как если бы они были перезаписаны. Например ... если факс-поля отображали список (a, b, c, d) при первом обновлении, он будет отображать (a, b, c) на втором, и в конечном итоге список будет наполовину полный.Django Haystack Solr facets.fields исчезает

Я мог бы сгенерировать список значений вне поля facets.fields, но я бы подумал, что это не понадобится, и я пропускаю что-то простое. Любая помощь будет оценена, спасибо.

schema.xml

<field name="models" type="text_en" indexed="true" stored="true" multiValued="true" termVectors="true" /> 
<field name="models_exact" type="string" indexed="true" stored="true" multiValued="true" termVectors="true" /> 

search_indexes.py

models = indexes.MultiValueField(faceted=True) 

def prepare_models(self, obj): 
    return [g for g in obj.model.all()] 

* _text.txt

{% for model in object.model.all %} 
    {{ model|safe }} 
{% endfor %} 

template.html

{% if facets.fields.models %} 
    <form name="drilldown_models" action="{% url 'cmaster:search' %}" method="GET"> 
     <span class="faceting-title">Models</span> 
     <select name="selected_facets"> 
     {% for model in facets.fields.models %} 
      {% if model.1 > 0 %} 
       <option value="models_exact:{{ model.0 }}">{{ model.0 }} : {{ model.1 }}</option> 
      {% endif %} 
     {% endfor %} 
     </select> 
     {% for fac in selected_facets %} 
      <input type="hidden" name="selected_facets" value="{{ fac }}"> 
     {% endfor %} 
     <input type="hidden" name="q" value="{{ query }}"> 
     <input type="submit"> 
    </form> 
{% else %} 
    <p>No model facets.</p> 
{% endif %} 

tldr; обновляя мою страницу с шаблонами во время восстановления rebuild_index, исчезают поля фасета.

** Обновление

Список был несколько пунктов, более 100 огранки будет показывать только первые 100 результатов, если добавить «предел» аргумент. В моем случае «limit = -1» для всех результатов.

ответ

0

В списке было несколько элементов более 100. Границы будут показывать только первые 100 результатов, если не добавить аргумент «limit». В моем случае «limit = -1» для всех результатов.