如何在 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
;那是 d
、e
和 t
后跟 A ≠ 0
的乘积(我不确定空的 <mo>
代表什么,但是 space 被 MathML 忽略。)
更好的表示是
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>det</mi>
<mo>⁡</mo>
<mi>A</mi>
<mo>≠</mo>
<mn>0</mn>
</math>
这也可能会解决您的搜索问题,因为现在 det
将匹配某些内容。
我有一个问答网站,上面使用 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
;那是 d
、e
和 t
后跟 A ≠ 0
的乘积(我不确定空的 <mo>
代表什么,但是 space 被 MathML 忽略。)
更好的表示是
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>det</mi>
<mo>⁡</mo>
<mi>A</mi>
<mo>≠</mo>
<mn>0</mn>
</math>
这也可能会解决您的搜索问题,因为现在 det
将匹配某些内容。