## engine.IndexSearcher


Inherited lucene IndexSearcher, with a mixed-in IndexReader.


Usage

``` python
engine.IndexSearcher(
    directory,
    analyzer=None,
)
```


## Parameters

| Name | Type | Description | Default |
|----|----|----|----|
| directory |  | directory path, lucene Directory, or lucene IndexReader | \- |
| analyzer |  | lucene Analyzer, default StandardAnalyzer | \- |


## Attributes

| Name | Description |
|----|----|
| [highlighter](#highlighter) | lucene UnifiedHighlighter |

------------------------------------------------------------------------


#### highlighter


lucene UnifiedHighlighter


`highlighter: uhighlight.UnifiedHighlighter`


## Methods

| Name | Description |
|----|----|
| [count()](#count) | Return number of hits for given query or term. |
| [facets()](#facets) | Return mapping of document counts for the intersection with each facet. |
| [get()](#get) | Return \[Document\]\[lupyne.engine.documents.Document\] with only selected fields loaded. |
| [groupby()](#groupby) | Return \[Hits\]\[lupyne.engine.documents.Hits\] grouped by field |
| [match()](#match) | Generate scores for all queries against a given document mapping. |
| [reopen()](#reopen) | Return current \[IndexSearcher\]\[lupyne.engine.indexers.IndexSearcher\]. |
| [search()](#search) | Run query and return \[Hits\]\[lupyne.engine.documents.Hits\]. |
| [spans()](#spans) | Generate docs with occurrence counts for a span query. |

------------------------------------------------------------------------


#### count()


Return number of hits for given query or term.


Usage

``` python
count(*query, **options)
```


\*query: \[search\]\[lupyne.engine.indexers.IndexSearcher.search\] compatible query, or optimally a name and value \*\*options: additional \[search\]\[lupyne.engine.indexers.IndexSearcher.search\] options


------------------------------------------------------------------------


#### facets()


Return mapping of document counts for the intersection with each facet.


Usage

``` python
facets(query, *fields, **query_map)
```


##### Parameters

| Name | Type | Description | Default |
|----|----|----|----|
| query |  | query string or lucene Query \*fields: field names for lucene GroupingSearch \*\*query_map: `{facet: {key: query, ...}, ...}` for intersected query counts | \- |

------------------------------------------------------------------------


#### get()


Return \[Document\]\[lupyne.engine.documents.Document\] with only selected fields loaded.


Usage

``` python
get(id, *fields)
```


------------------------------------------------------------------------


#### groupby()


Return \[Hits\]\[lupyne.engine.documents.Hits\] grouped by field


Usage

``` python
groupby(field, query, count=None, start=0, **attrs)
```


using a \[GroupingSearch\]\[lupyne.engine.documents.GroupingSearch\].


------------------------------------------------------------------------


#### match()


Generate scores for all queries against a given document mapping.


Usage

``` python
match(document, *queries)
```


------------------------------------------------------------------------


#### reopen()


Return current \[IndexSearcher\]\[lupyne.engine.indexers.IndexSearcher\].


Usage

``` python
reopen()
```


Only creates a new one if necessary.


------------------------------------------------------------------------


#### search()


Run query and return \[Hits\]\[lupyne.engine.documents.Hits\].


Usage

``` python
search(query, count, sort=None, scores=False, **parser)
```


##### Note

changed in version 2.3: maxscore option removed; use Hits.maxscore property

##### Parameters

| Name | Type | Description | Default |
|----|----|----|----|
| query |  | query string or lucene Query | \- |
| count |  | maximum number of hits to retrieve | \- |
| sort |  | lucene Sort parameters; supports field with `-` to indicate reverse | \- |
| scores |  | compute scores for candidate results when sorting \*\*parser: \[parse\]\[lupyne.engine.analyzers.Analyzer.parse\]\` options | \- |


------------------------------------------------------------------------


#### spans()


Generate docs with occurrence counts for a span query.


Usage

``` python
spans(query, positions=False)
```


##### Parameters

| Name      | Type | Description                                          | Default |
|-----------|------|------------------------------------------------------|---------|
| query     |      | lucene SpanQuery                                     | \-      |
| positions |      | optionally include slice positions instead of counts | \-      |
