Example 1: My query term is "abcd".
My query structure is like this:
    query: {
       query_string: {
          query: "abc",
          fields: ["field1", "field2", "field3"]
       }
    },
    size: 50,
    "highlight": {
    "fields": {
        "field1": {},
        "field2": {},
        "field3": {}
    }
It matches the following instances:
abc abcs abc_def_ghi
But it does not match def_abc or def_abc_ghi. Basically instances where abc is in the middle of a string.
Example 2: In the same example above, if my query is abc_def
It does not match abc_def_ghi, although abc_def is present.
I have tried prefix_phrase and it solves scenario 2 but misses out on example 1's problems.
Any help would be appreciated.