프로그래밍 방식으로 사용자의 검색 표현식을 확장 할 수 있어야합니다. X w/5 (Y || Z) ~ "X Y"~ 5 || "X Z"~ 5
이런 종류의 작업을 수행 할 수있는 기존 라이브러리가 있습니까? 그렇지 않은 경우 어떤 접근 방식을 권장합니까? 이 솔루션은 .NET 환경 내에 존재합니다.프로그래밍 방식으로 X w/5 (Y || Z)를 "X Y"~ 5 || "X Z"~ 5
0
A
답변
1
당신은 conjuctive normal form http://en.wikipedia.org/wiki/Conjunctive_normal_form과 분리형 보통 formhttp : //en.wikipedia.org/wiki/Disjunctive_normal_form을 살펴보고 싶을 것입니다.
구현할 수있는 알고리즘과 Java 구현에 대한 링크가 있습니다.
1
당신이 필요로하는 것은 조작 할 수있는 추상 구문 트리를 생성하는 파서입니다. 보세요 here.
+0
파서 자체는 표현식을 다시 작성하지 않습니다. 그가 필요로하는 것은 파서와 커스텀 익스프레션 재 작성 루틴입니다. –
관련 문제
- 1. 비트 AND AND x & y = z, x =?
- 2. 루비 이상 : x == y && [x, y] .uniq == [x, y]
- 3. X, Y, Z 점과면 도면
- 4. 3d 그래프 (x, y, z)
- 5. prolog, test (X, Y, Z) : - Y는 X + Z입니다.
- 6. UILabel은 프로그래밍 방식으로 x, y 좌표를 설정합니다.
- 7. 왜 C++에서 x [y] == y [x]입니까?
- 8. Matlab 네이티브 방식으로 x y 점을 제거합니다.
- 9. 컨투어 (X, Y)
- 10. X/Y 좌표를 계산하여
- 11. translate3d (x, y, z)를 사용하여 이동하는 요소의 현재 (x, y, z)를 찾을 수 있습니까?
- 12. 대지 만 (X, Y) 포인트
- 13. 푸의 MATLAB의 의미 란 (X, Y, Z)
- 14. x, y 및 z 열의 값을 인쇄하려면
- 15. "isset ($ x)? $ y : $ z"는 무엇을 의미합니까?
- 16. 주어진 X, Y 및 Z 벡터
- 17. (x, y, z)의 DirectX 텍스트
- 18. x + y-z - 1과 1 사이
- 19. 말은 {X = 569, Y = 71} {X = 735, Y = 91}
- 20. 오브젝트 (x, y)가 다른 오브젝트 (x, y) 근처에있는 경우
- 21. Java X Y 좌표
- 22. Android : 디스플레이 x^y
- 23. X 및 Y 좌표보기보기
- 24. 이미지의 CGMakePoint (X, Y)
- 25. 인쇄 페이지 x x in y. NET
- 26. `y = x = x + 1;`정의되지 않은 동작입니까?
- 27. 최적화 Y = X * X 갈루아 필드 연산
- 28. 파이썬 : 통계 특성을 추출하기 위해 포인트 X, Y, Z를 그리드
- 29. 정렬 된 배열의 모든 쌍 (x, y)을 찾아서 x + y <z
- 30. 3d 점 (x, y, z)으로 구체에 2 차원 격자 점 (x, y)을 매핑하는 방법
이유를 설명 할 수 있습니까? 아마도 최종 목표를 달성 할 수있는 대안이있을 수 있습니다. – GregRos
근본적인 목적을보다 잘 반영하기 위해 게시물을 수정했습니다. 근접 쿼리를 Lucene에 전달합니다. – balazs