如何在 MathML 中使用 elasticsearch 索引公式?

How to use elasticsearch for indexing formulas in MathML?

我有一个问答网站,上面使用 Elasticsearch,还使用 ​​MathML 来键入公式。例如

<math xmlns="http://www.w3.org/1998/Math/MathML">
    <mi>d</mi>
    <mi>e</mi>
    <mi>t</mi>
    <mo> </mo>
    <mi>A</mi>
    <mo>≠</mo>
    <mn>0</mn>
</math>

det A ≠ 0 的 MathML 代码。

问题在于 elasticsearch 将其作为简单文本(而非公式)进行索引,因此搜索“det”的结果是空的。

您的 MathML 在语义上与您所做的不正确。不是det A ≠ 0,而是d * e * t A ≠ 0;那是 det 后跟 A ≠ 0 的乘积(我不确定空的 <mo> 代表什么,但是 space 被 MathML 忽略。)

更好的表示是

<math xmlns="http://www.w3.org/1998/Math/MathML">
    <mi>det</mi>
    <mo>&#x2061;</mo>
    <mi>A</mi>
    <mo>≠</mo>
    <mn>0</mn>
</math>

这也可能会解决您的搜索问题,因为现在 det 将匹配某些内容。