| 65 | |
| 66 | @log_query |
| 67 | def search(self, query_string, **kwargs): |
| 68 | from haystack import connections |
| 69 | |
| 70 | global MOCK_INDEX_DATA |
| 71 | results = [] |
| 72 | hits = len(MOCK_INDEX_DATA) |
| 73 | indexed_models = connections["default"].get_unified_index().get_indexed_models() |
| 74 | |
| 75 | def junk_sort(key): |
| 76 | app, model, pk = key.split(".") |
| 77 | |
| 78 | if pk.isdigit(): |
| 79 | return int(pk) |
| 80 | else: |
| 81 | return ord(pk[0]) |
| 82 | |
| 83 | sliced = sorted(MOCK_INDEX_DATA, key=junk_sort) |
| 84 | |
| 85 | for i, result in enumerate(sliced): |
| 86 | app_label, model_name, pk = result.split(".") |
| 87 | model = apps.get_model(app_label, model_name) |
| 88 | |
| 89 | if model: |
| 90 | if model in indexed_models: |
| 91 | results.append( |
| 92 | MockSearchResult(app_label, model_name, pk, 1 - (i / 100.0)) |
| 93 | ) |
| 94 | else: |
| 95 | hits -= 1 |
| 96 | else: |
| 97 | hits -= 1 |
| 98 | |
| 99 | return { |
| 100 | "results": results[kwargs.get("start_offset") : kwargs.get("end_offset")], |
| 101 | "hits": hits, |
| 102 | } |
| 103 | |
| 104 | def more_like_this( |
| 105 | self, model_instance, additional_query_string=None, result_class=None |