Is an error indicator an index for size measurement of something? And how is the relationship between the error estimator and error indicator? Is the error indicator just used for the (e.g. derivative) recovery based error estimation? If the solution of strong form has low regularity, such as including a discontinuous interface in the domain, then how one may design both stuff? Anyone can give me some intuitive pictures?
In general, for a finite element approximation $u_h$ of the exact (but unknown) solution $u$ of a partial differential equation, it would of course be nice if we could compute something like $\|u-u_h\|_K$ for each cell $K$ of the finite element mesh -- in other words, a measure for how wrong the approximate solution is.
But we can't do this because we don't know the exact solution $u$. So, over the years, people have come up with estimates of the error, i.e., for each cell we have a quantity $\eta_K$ so that $\|u-u_h\|_K \le \eta_K$. Such quantities $\eta_K$ -- called error estimators -- can be derived for a number of equations including the Laplace equation, elasticity, Stokes, etc.
But in order to do this, one typically needs some structure in the equations and not all equations have that. So, for example for the Navier-Stokes equations or other equations with nonlinearity, it's often very difficult to derive these estimators $\eta_K$ and in fact, for most equations, we may have an idea how such an $\eta_K$ would look like, but we can't prove that it's an upper bound for the actual error. This may be because our idea is wrong and the form we have assumed is not in fact an upper bound. Or -- and that's probably the case for most equations -- our idea is correct, but we lack the mathematical techniques to prove that it's an upper bound; in other words, it is true that for our assumed $\eta_K$ there holds $\|u-u_h\|_K \le \eta_K$, but cannot prove that that inequality holds.
In such cases, we call $\eta_K$ an error indicator: it is not strictly speaking an estimator, but it is still indicative of the size of the error, as verified in numerical experiments. We consequently cannot use it to attach a guarantee to a computation that states that the error is less than, say, 5%, but we can still use it to refine the mesh, and maybe to do things such as recovery methods to get an even better approximation $\tilde u_h$. In practice, refining the mesh is probably the most common use: you want to reduce the size of cells in areas where the error estimate suggests that the error is large, and keep the mesh coarse where the error estimate suggests that the error is already small.
I would recommend J.T. Oden book on the mathematical foundations of FEM, and paper of M. Ainsworth, at least this is what I read to educate myself as a civil engineer. It takes time to digest mathematics, but I strongly recommend this.
In essence, if you know the error, you know the solution. Using mathematics, you can estimate error, by calculating upper or lower bound, or both. You can do that before or after you get an approximate solution, i.e. a priory or a posteriorly. Error estimator is better if the lower and upper bound are closer together. Error estimator has to be efficient, in such way, that for refining solution (f.e. making mesh denser), it converges to exact error. It has to be cheap to calculate, at least faster than uniform mesh refinement and solving the refined problem.
It easy to implement finite element, the real difficulty it to derive and implement good error estimator, it takes longer time significantly. That is why many develop mix-finite elements, since error evaluator is built into implementation, or apply error indicators.
The error indicator is always a posteriori and does not have bounds, it has no proof that will converge to exact error once a sequence of subsequent mesh refinements is analysed. It just tells that something is potentially wrong with the solution. Applying it to drive mesh adaptivity will not guarantee that you would converge.
Zienkiewicz-Zhu is error indicator. However, as an example of an error indicator, I like to use material/configurational/Elsheby force. Material force in the homogeneous body and elastic problem is zero. However, if a solution is not exact, material force calculated on mesh nodes is not zero. So if one calculate material forces on mesh nodes, and those are not-zero, he or she knows that is an error in the solution. However, if we try to displace nodes of the mesh, to minimalise that material force we quickly find out that not necessary improve the solution. Displacing mesh nodes in the direction of material forces initially can improve the solution, but ultimately will create a distorted mesh with poor approximation qualities.