graphql-compose / graphql-compose/graphql-compose-elasticsearch
search not working as expected
- Dominant language
- TypeScript
- Stars
- 584
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Description
hey there,
i am currently having issues with the search.
This is the code:
```javascript
sellerProductSchema.plugin(mongoosastic, {
esClient,
index: 'sellerproduct',
transform: (data: any, post: any) => {
const transformedData = { ...data, seller: data.seller._id };
return transformedData;
},
});
const ElasticSearchSellerProductTC = composeWithElastic({
graphqlTypeName: 'sellerProduct',
elasticIndex: 'sellerproduct',
elasticType: 'sellerproduct',
elasticMapping: {
properties: {
title: {
type: 'keyword',
},
category: {
type: 'keyword',
},
price: { type: 'long' },
shortDescription: {
type: 'text',
},
longDescription: {
type: 'text',
},
seller: {
type: 'keyword',
},
image: { type: 'text' },
updatedAt: { type: 'date' },
createdAt: { type: 'date' },
},
},
elasticClient: esClient,
});
sellerProductSchemaComposer.Query.addFields({
elasticSearchSellerProduct: ElasticSearchSellerProductTC.getResolver('search'),
//
elastic50: elasticApiFieldConfig({
host: 'elasticsearch:9200',
apiVersion: '5.6',
log: 'trace',
}),
});
```
The following query does *not* work:
```javascript
query {
elasticSearchSellerProduct(
query: { simple_query_string: { query: "title", fields: ["title"] } }
) {
hits {
fields
_id
_source {
title
}
}
}
}
```
Reponse:
```javascript
{
"data": {
"elasticSearchSellerProduct": {
"hits": []
}
}
}
```
This is the corresponding log-trace for the above request:
```
node_1 | Elasticsearch TRACE: 2020-05-06T12:46:13Z
node_1 | -> POST http://elasticsearch:9200/sellerproduct/_search?type=sellerproduct
node_1 | {
node_1 | "_source": [
node_1 | "title"
node_1 | ],
node_1 | "query": {
node_1 | "simple_query_string": {
node_1 | "query": "title",
node_1 | "fields": [
node_1 | "title"
node_1 | ]
node_1 | }
node_1 | }
node_1 | }
node_1 | <- 200
node_1 | {
node_1 | "took": 2,
node_1 | "timed_out": false,
node_1 | "_shards": {
node_1 | "total": 1,
node_1 | "successful": 1,
node_1 | "skipped": 0,
node_1 | "failed": 0
node_1 | },
node_1 | "hits": {
node_1 | "total": {
node_1 | "value": 0,
node_1 | "relation": "eq"
node_1 | },
node_1 | "max_score": null,
node_1 | "hits": []
node_1 | }
node_1 | }
node_1 |
````
But this query does work, and gives the right details:
```javascript
query {
elastic50 {
search(q: "title")
}
}
```
Whats interesting though is that for the query with `elastic50` i *dont* have autocompletion in graphiql - really odd...
Whats happening here? Any help would be much appreciated
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.